Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python打印嵌套在数组中的json对象_Python_Arrays_Json - Fatal编程技术网

使用python打印嵌套在数组中的json对象

使用python打印嵌套在数组中的json对象,python,arrays,json,Python,Arrays,Json,我正在处理一个JSON文件,并且正在使用Python。我试图打印嵌套在数组中的对象。我想打印以下数组中的选定对象(例如“名称”、“thomas_id”)(是否将其视为数组中“对象”的“列表”?该数组是否称为“共同赞助者”数组?) 问题是我不知道在数组中打印对象(列出?)的语法。我尝试了从我在堆栈溢出上发现的东西推断出的一些变化;即,以下各项的变化: print(data['cosponsors']['0']['thomas_id'] 我收到错误“列表索引必须是整数或片,而不是str” 背景:

我正在处理一个JSON文件,并且正在使用Python。我试图打印嵌套在数组中的对象。我想打印以下数组中的选定对象(例如“名称”、“thomas_id”)(是否将其视为数组中“对象”的“列表”?该数组是否称为“共同赞助者”数组?)

问题是我不知道在数组中打印对象(列出?)的语法。我尝试了从我在堆栈溢出上发现的东西推断出的一些变化;即,以下各项的变化:

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'])