Python提取JSON文件name字段时出现Expecting value: line 1 column 1 (char 0)错误的解决方法
解决JSON提取"name"字段的报错问题
嘿,你的代码有两个关键问题导致了这个错误,我帮你一步步修正:
错误1:混淆了json.load()和json.loads()的用法
你用了json.loads('data.json'),但loads()是用来解析JSON格式的字符串的,而你要读取的是本地JSON文件,应该用json.load(),并且需要先打开文件对象。另外,你把模块名json赋值给了变量json,这会覆盖原有的模块,后续再调用模块方法会出问题,建议换个变量名比如data。
错误2:访问"name"字段的路径不对
从你的JSON结构来看,name是嵌套在Profile对象里的,不是直接在accounts的value下,所以得先拿到Profile再取name。
修改后的完整代码
import json # 打开并加载JSON文件 with open('data.json', 'r') as f: data = json.load(f) # 遍历accounts下的所有账户对象 for account_value in data["accounts"].values(): # 访问Profile里的name字段 print(account_value["Profile"]["name"])
代码说明
with open(...)是Python安全打开文件的方式,会自动帮你关闭文件。json.load(f)读取文件对象并解析成Python字典。- 遍历
data["accounts"].values()拿到每个账户的详情,再通过["Profile"]["name"]获取目标字段。
这样修改后,就能正确输出random name啦~
内容的提问来源于stack exchange,提问作者Makatina




