Python遍历JSON数组时出现AttributeError错误的原因及解决方法
嘿,我来帮你搞定这个问题!
错误原因解析
你遇到的AttributeError: 'list' object has no attribute 'values',核心原因是你把列表当成字典来用了:
- 你的JSON文件最外层是方括号
[],这代表它是一个数组结构,所以json.load(data_file)解析后得到的data是一个Python的列表(list)对象。 - 而
values()是Python字典(dict)特有的方法,用来获取字典里的所有值,列表根本没有这个属性,所以调用data.values()自然会报错。
解决办法
因为data是列表,里面的每个元素才是你要处理的字典,所以我们需要先遍历列表里的每个字典元素,再对字典进行操作。这里给你几种常用的处理方式:
方式1:打印每个字典里的所有值
如果你的需求是输出每个字典里的所有内容值,可以这样写:
import json with open('final_result.json') as data_file: data = json.load(data_file) # 先遍历列表中的每个字典项 for item in data: # 现在item是字典,调用values()就没问题了 for v in item.values(): print(v)
方式2:直接打印完整的字典对象
如果只是想查看每个完整的字典内容,直接遍历列表打印每个元素即可:
import json with open('final_result.json') as data_file: data = json.load(data_file) for item in data: print(item)
方式3:单独访问指定字段
如果需要针对性地获取某个字段(比如userID或message),可以直接通过键名访问:
import json with open('final_result.json') as data_file: data = json.load(data_file) for item in data: print(f"用户ID: {item['userID']}, 消息内容: {item['message']}")
内容的提问来源于stack exchange,提问作者Nayden Van
相关产品推荐
相关产品推荐

