如何用Python提取JSON文件中的indexnum字段到列表?
问题解决:提取嵌套JSON结构中的indexnum字段
错误原因分析
- 你的JSON数据是双层嵌套列表结构:最外层是列表,内层还有一个子列表,子列表的每个元素才是包含
indexnum的字典。所以my_data是列表类型,不能用字符串(比如'indexnum')作为索引,列表只能用整数或切片索引。 - 你尝试的
my_data[0]['indexnumber']存在两个问题:my_data[0]是内层子列表(依然是列表),同样不能用字符串索引;另外字段名拼写错误,应该是indexnum而非indexnumber。
正确实现代码
要提取所有indexnum的值到datalist1,需要遍历嵌套的列表结构:
import json with open('./79553/combined.json', 'r', encoding='UTF-8') as infile: my_data = json.load(infile) datalist1 = [] # 遍历外层列表的每个元素(这里外层只有一个子列表) for sub_list in my_data: # 遍历子列表里的每个字典 for item in sub_list: datalist1.append(item['indexnum']) # 或者用更简洁的列表推导式 # datalist1 = [item['indexnum'] for sub_list in my_data for item in sub_list] print(datalist1) # 输出: [677, 2321]
验证说明
运行上述代码后,datalist1会正确收集所有indexnum的值,你可以通过print(datalist1)查看结果。如果你的JSON外层列表有多个子列表,这段代码也能自动遍历所有子列表中的字典,不会遗漏数据。
内容的提问来源于stack exchange,提问作者jieun kim
相关产品推荐
相关产品推荐

