Python JSON与CSV处理
学习读写 JSON 和 CSV 文件 · 难度:进阶 · +15XP
Python JSON与CSV处理
Python JSON 与 CSV 处理 — 数据交换的桥梁
学习前的准备
你需要 Python 3 环境。json 和 csv 模块都是 Python 标准库的一部分,无需安装。
JSON 处理
import json
# Python 对象 → JSON 字符串
data = {
"name": "张三",
"age": 25,
"skills": ["Python", "JavaScript"],
"active": True
}
json_str = json.dumps(data, ensure_ascii=False, indent=2)
print(json_str)
# JSON 字符串 → Python 对象
json_text = '{"name": "李四", "score": 95.5, "passed": true}'
student = json.loads(json_text)
print(student["name"]) # 李四
# 写入 JSON 文件
with open("users.json", "w", encoding="utf-8") as f:
json.dump(users, f, ensure_ascii=False, indent=2)
# 从 JSON 文件读取
with open("users.json", "r", encoding="utf-8") as f:
loaded_users = json.load(f)
CSV 文件读写
import csv
# 写入 CSV
with open("students.csv", "w", newline="", encoding="utf-8-sig") as f:
writer = csv.writer(f)
writer.writerow(["姓名", "年龄", "成绩"])
writer.writerow(["张三", 20, 88])
writer.writerow(["李四", 22, 95])
# 读取 CSV
with open("students.csv", "r", encoding="utf-8-sig") as f:
reader = csv.reader(f)
header = next(reader)
for row in reader:
name, age, score = row
print(f"{name},{age}岁,成绩{score}分")
DictReader 和 DictWriter
# DictWriter:使用字典写入
with open("products.csv", "w", newline="", encoding="utf-8-sig") as f:
fields = ["名称", "价格", "库存"]
writer = csv.DictWriter(f, fieldnames=fields)
writer.writeheader()
writer.writerow({"名称": "笔记本", "价格": 15, "库存": 200})
# DictReader:使用列名读取
with open("products.csv", "r", encoding="utf-8-sig") as f:
reader = csv.DictReader(f)
for row in reader:
print(f"{row['名称']}:{row['价格']}元")
小结
JSON 是 Web 开发中数据交换的标准格式——用 json.dumps/dump 序列化和 json.loads/load 反序列化。CSV 适合表格数据——csv.writer 写入,csv.reader 读取。DictReader/DictWriter 用列名访问更友好。