Python处理JSON文件报multiple root elements错误如何修复?
JSON格式错误原因
- 标准JSON要求全局只能有1个根元素,你当前文件用
{}包裹了2个独立的JSON对象,属于非法结构,触发了multiple root elements报错 - 若要存储多个同类型对象,根元素需要使用数组标识
[],而非对象标识{}
修复方法
方法1:直接修改源JSON文件
将文件首尾的{和}替换为[和],修改后的合法内容如下:
[ {"ticket":{"id":"123", "name":"bill"}}, {"ticket":{"id":"1234", "name":"james"}} ]
修改完成后,你原来的读取代码即可正常运行。
方法2:不修改源文件,用代码兼容处理
如果不方便调整源文件内容,可以在Python读取阶段对原始字符串做修正,再解析为JSON对象:
import json with open('ticketData8242020-6152021.json', 'r') as f: raw_data = f.read() # 移除首尾多余的大括号 processed_data = raw_data.strip().lstrip('{').rstrip('}') # 外层套方括号转为合法JSON数组 fixed_data = f'[{processed_data}]' data = json.loads(fixed_data)
内容的提问来源于stack exchange,提问作者Ian Johnson
相关产品推荐
相关产品推荐

