本文目录导读:

好,这个问题很实用,Python存储数据的方式非常多,我会从最常见的场景出发,给你梳理一个清晰的分类和案例。
按“数据是否结构化”分类
结构化数据(表格、数据库)
案例1:CSV文件(最通用)
import csv
# 存储
data = [
{"name": "张三", "age": 25, "city": "北京"},
{"name": "李四", "age": 30, "city": "上海"}
]
with open("users.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=["name", "age", "city"])
writer.writeheader()
writer.writerows(data)
# 读取
with open("users.csv", "r", encoding="utf-8") as f:
reader = csv.DictReader(f)
for row in reader:
print(row)
案例2:Excel文件(需要 openpyxl 或 pandas)
import pandas as pd
# 存储
df = pd.DataFrame({
"姓名": ["张三", "李四"],
"分数": [85, 92]
})
df.to_excel("成绩.xlsx", index=False)
# 读取
df_read = pd.read_excel("成绩.xlsx")
print(df_read)
案例3:SQLite数据库(轻量级数据库)
import sqlite3
# 连接(不存在会自动创建)
conn = sqlite3.connect("mydb.db")
cursor = conn.cursor()
# 创建表
cursor.execute("""
CREATE TABLE IF NOT EXISTS students (
id INTEGER PRIMARY KEY,
name TEXT,
score REAL
)
""")
# 插入数据
cursor.execute("INSERT INTO students (name, score) VALUES (?, ?)",
("王五", 88.5))
conn.commit()
# 查询
cursor.execute("SELECT * FROM students")
print(cursor.fetchall())
conn.close()
半结构化数据(JSON、XML)
案例4:JSON(最常用,适合web/API场景)
import json
# 数据(可以是字典、列表)
data = {
"project": "数据分析",
"version": 1.0,
"results": [
{"id": 1, "value": 0.95},
{"id": 2, "value": 0.87}
]
}
# 写入文件
with open("data.json", "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
# 读取文件
with open("data.json", "r", encoding="utf-8") as f:
loaded = json.load(f)
print(loaded["project"])
Python对象持久化(保留Python对象状态)
案例5:Pickle(序列化任意Python对象)
import pickle
# 任何Python对象
my_model = {
"weights": [0.5, 0.3],
"bias": 0.1,
"config": {"learning_rate": 0.01}
}
# 存储
with open("model.pkl", "wb") as f:
pickle.dump(my_model, f)
# 读取
with open("model.pkl", "rb") as f:
restored = pickle.load(f)
print(restored["weights"])
高性能/大数据场景
案例6:NumPy数组(机器学习数据)
import numpy as np
# 创建数组
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 存储为.npy格式(速度快,占用小)
np.save("matrix.npy", arr)
# 读取
arr_loaded = np.load("matrix.npy")
print(arr_loaded)
案例7:HDF5(适合大规模科学数据)
import h5py
# 存储
with h5py.File("sensor_data.h5", "w") as f:
f.create_dataset("temperature", data=[22.5, 23.1, 21.8])
f.create_dataset("humidity", data=[60, 65, 58])
# 读取
with h5py.File("sensor_data.h5", "r") as f:
temp = f["temperature"][:]
print(temp)
快速选择指南
| 场景 | 推荐方式 | 原因 |
|---|---|---|
| 简单配置 | JSON/ YAML | 人类可读,结构灵活 |
| 表格数据 < 100MB | CSV / Excel | 通用,Excel可查看 |
| 表格数据 > 100MB | Parquet / HDF5 | 压缩率高,读写快 |
| 需要频繁增删改查 | SQLite | 数据库支持SQL |
| 跨语言/网络传输 | JSON / MessagePack | 标准格式 |
| 保存训练好的模型 | Pickle / Joblib | 保留Python对象 |
| 深度学习数据集 | TFRecord / HDF5 | 框架原生支持 |
一句话记住
- 小数据 → JSON (方便查看)
- 表格数据 → CSV 或 SQLite (简单通用)
- 大数组 → .npy 或 HDF5 (性能好)
- Python对象 → Pickle (灵活但小心安全性)
- 生产环境 → 数据库(MySQL、PostgreSQL)+ 云存储
你是想存储什么类型的数据?我可以给你更具体的推荐和代码示例。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播