pandas调用read_json读取194条元素的JSON文件仅返回100条的问题
pandas读取JSON文件数据不全问题修复方案
第一步:排查是读取截断还是显示截断
先执行下方代码确认实际读取到的数据总量:
print(len(data))
- 如果输出为194,属于显示阶段的问题
- 如果输出为100,属于读取阶段的问题
显示阶段问题修复
你当前的参数设置逻辑无顺序错误,但如果仍显示不全,可补充设置最小展示行数参数避免自动折叠:
pd.options.display.max_rows = 300 pd.options.display.min_rows = 200
读取阶段问题修复
90%以上的读取不全是JSON格式和读取参数不匹配导致的,对应不同格式调整参数即可:
- 如果你的JSON是每行一个独立JSON对象的JSON Lines格式,需要添加
lines=True参数:data = pd.read_json('input.json', lines=True) - 如果你的JSON是嵌套结构,数据挂载在顶层的某个字段下,改用原生json库读取后再转DataFrame:
import json with open('input.json', 'r', encoding='utf-8') as f: raw = json.load(f) # 替换下面的'items'为你实际存储数据的顶层字段名 data = pd.DataFrame(raw['items'])
完整可运行参考代码
import pandas as pd import json # 提前配置显示参数 pd.set_option('display.max_rows', 300) pd.set_option('display.min_rows', 200) # 适配JSON格式读取,选对应写法取消注释即可 # 普通数组JSON用这个 data = pd.read_json('input.json') # JSON Lines格式用这个 # data = pd.read_json('input.json', lines=True) # 嵌套结构JSON用这个 # with open('input.json', 'r', encoding='utf-8') as f: # raw = json.load(f) # data = pd.DataFrame(raw['items']) # 校验读取结果 print(f"读取总条数:{len(data)}") print(data)
内容的提问来源于stack exchange,提问作者Amen0
相关产品推荐
相关产品推荐

