将JSON字符串转换为Python字典时遇额外数据错误的解决求助
解决JSON转Python字典的“额外数据”错误
问题根源
你写的JSON字符串是多个独立对象用逗号直接拼接,这不符合JSON语法规范——JSON的根节点只能是单个对象({})或数组([])。json.loads()遇到这种多根对象的情况就会抛出“额外数据”错误。另外你的代码还存在和原始任务不符的细节:贾米拉的团队成员应该是朱厄尔、贾斯敏和杰里米,不是你写的Jenny;同时任务要求字段名为小写的name和manages,你用了大写的Name和Manages,也需要修正。
修正后的代码
import json # 用数组包裹所有对象,修正字段名和团队成员信息 company = '[{"name": "George", "manages": ["James", "Jamilia"]}, {"name": "James", "manages": ["Jill", "Jenny"]}, {"name": "Jamilia", "manages": ["Jasmine", "Jewel", "Jeremy"]}]' # 转换后得到包含多个字典的列表,符合任务结构要求 company_dict = json.loads(company) print(company_dict)
补充说明
如果需要把整个结构做成以管理者名字为键的顶层字典,可以再做一步转换:
# 转换为以名字为键的字典结构 company_dict = {item["name"]: item for item in json.loads(company)}
内容的提问来源于stack exchange,提问作者GLM
相关产品推荐
相关产品推荐

