使用python打印嵌套在数组中的json对象
我正在处理一个JSON文件,并且正在使用Python。我试图打印嵌套在数组中的对象。我想打印以下数组中的选定对象(例如“名称”、“thomas_id”)(是否将其视为数组中“对象”的“列表”?该数组是否称为“共同赞助者”数组?) 问题是我不知道在数组中打印对象(列出?)的语法。我尝试了从我在堆栈溢出上发现的东西推断出的一些变化;即,以下各项的变化:使用python打印嵌套在数组中的json对象,python,arrays,json,Python,Arrays,Json,我正在处理一个JSON文件,并且正在使用Python。我试图打印嵌套在数组中的对象。我想打印以下数组中的选定对象(例如“名称”、“thomas_id”)(是否将其视为数组中“对象”的“列表”?该数组是否称为“共同赞助者”数组?) 问题是我不知道在数组中打印对象(列出?)的语法。我尝试了从我在堆栈溢出上发现的东西推断出的一些变化;即,以下各项的变化: print(data['cosponsors']['0']['thomas_id'] 我收到错误“列表索引必须是整数或片,而不是str” 背景:
print(data['cosponsors']['0']['thomas_id']
我收到错误“列表索引必须是整数或片,而不是str”
背景:
我有3000多个json文件,它们包含在所谓的主文件中。我只需要每个文件的相同的特定方面,我将需要稍后导出到MYSQL数据库,但这是另一个主题(或者,这是不是,我是不是走错了方向?)。因此,我正在编写一个可以在所有文件上实现的代码,以便获得所需的数据。考虑到我没有任何编程经验,我一直做得很好。我在Python中使用了以下代码:
import json
data = json.load(open('s2_data.json', 'r'))
print (data["official_title"], data["number"], data["introduced_at"],
data["bill_id"], data['subjects_top_term'], data['subjects'],
data['summary']['text'], data['sponsor']['thomas_id'],
data['sponsor']['state'], data['sponsor']['name'], data['sponsor']
['type'])
它一直在返回用空格分隔的结果。到目前为止,我对此感到高兴 怎么样
data['cosponsors'][0]['thomas_id']
由于列表具有数字索引。您正在使用字符串对列表进行索引,
'0'
是字符串,而不是整数。删除引号:
print(data['cosponsors'][0]['thomas_id'])
当有疑问时,检查部分结果;查看打印的内容(类型(数据['coponsors'])
生成的内容;如果生成了
,您知道需要使用整数索引,如果得到
,则使用键(可以通过调用字典上的print(list(…)
)获取键列表),等等
通常,列表包含数量可变的对象;它可能只是一个、零个或更多的负载。您可以在这些对象上循环:
for cosponsor in data['cosponsors']:
print(cosponsor['thomas_id'])
循环将共同赞助者
逐个设置到数据['coponsors']
列表中的每个对象。打印(数据['coponsors'][0]['thomas_id']
-注意0,而不是“0”
for cosponsor in data['cosponsors']:
print(cosponsor['thomas_id'])