📚 目录

  1. JSON 文件简介
  2. 读取 JSON 数据
  3. 保存 DataFrame 为 JSON
  4. JSON 格式结构支持
  5. 常见错误与调试方法
  6. 参考资料
  7. 出站链接

1. JSON 文件简介

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于 Web API、配置文件、日志存储等。Pandas 提供了便捷的接口来解析、读取和写入 JSON 格式数据。


2. 读取 JSON 数据

使用 pd.read_json() 可将 JSON 文件或字符串读取为 DataFrame:

import pandas as pd

df = pd.read_json('data.json')
print(df.head())

✅ 读取 JSON 字符串:

json_str = '''
[
  {"name": "Alice", "age": 25},
  {"name": "Bob", "age": 30}
]
'''

import io
df = pd.read_json(io.StringIO(json_str))


3. 保存 DataFrame 为 JSON

使用 DataFrame.to_json() 保存为 JSON 格式:

df.to_json('output.json', orient='records', lines=True)

常用参数:

参数说明
orient指定转换方向(如 recordssplitindexcolumnsvalues
lines每行一个 JSON 对象(流式写入)
force_ascii默认为 True,建议设置为 False 保留中文字符

示例(保留中文):

df.to_json('output.json', orient='records', force_ascii=False)


4. JSON 格式结构支持

Pandas 支持扁平化的 JSON,以及嵌套结构(需借助 json_normalize):

✅ 扁平 JSON 示例:

[
  {"id": 1, "name": "Alice", "age": 25},
  {"id": 2, "name": "Bob", "age": 30}
]

✅ 嵌套 JSON 示例(用 json_normalize 展开):

from pandas import json_normalize
import json

data = '''
[
  {"id": 1, "profile": {"name": "Alice", "age": 25}},
  {"id": 2, "profile": {"name": "Bob", "age": 30}}
]
'''

parsed = json.loads(data)
df = json_normalize(parsed, record_path=None)


5. 常见错误与调试方法

问题解决方案
ValueError: Expected object or valueJSON 字符串未正确解析,需检查格式或使用 io.StringIO()
Unicode 编码混乱设置 force_ascii=False
JSON 文件结构嵌套使用 json_normalize() 展开嵌套字段

📖 参考资料

  • Pandas JSON 读写官方文档
  • Real Python – Working with JSON in Python
  • Python 标准库文档(json 模块)

🔗 出站链接