【发布时间】:2016-03-15 03:18:06
【问题描述】:
我正在处理 JSON 文件并且正在使用 Python。我正在尝试打印嵌套在数组中的对象。我想从以下数组中打印选择对象(例如“name”、“thomas_id”)(它是否被认为是数组中“对象”的“列表”?该数组是否被称为 the “共同发起人”数组?):
"cosponsors": [
{
"district": null,
"name": "Akaka, Daniel K.",
"sponsored_at": "2011-01-25",
"state": "HI",
"thomas_id": "00007",
"title": "Sen",
"withdrawn_at": null
},
.
.
.
{
"district": null,
"name": "Lautenberg, Frank R.",
"sponsored_at": "2011-01-25",
"state": "NJ",
"thomas_id": "01381",
"title": "Sen",
"withdrawn_at": null
}
]
问题是我不知道在数组中打印对象(列出的?)的语法。我已经尝试了从堆栈溢出中发现的一些变化;即,以下变体:
print(data['cosponsors']['0']['thomas_id']
我收到错误“列表索引必须是整数或切片,而不是 str”
背景:
我有超过 3000 个 json 文件,它们包含在所谓的主文件中。我只需要稍后导出到 MYSQL DB 中的每个文件的相同特定方面,但这是另一个主题(或者是它,即我是否以错误的方式处理这个问题?)。因此,我正在编写一个可以在所有文件上隐含的代码,以便获取我需要的数据。考虑到我没有任何编程经验,我一直做得很好。我一直在 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'])
它一直在返回用空格分隔的结果。到目前为止,我对此感到满意。
【问题讨论】:
-
print(data['cosponsors'][0]['thomas_id']- 注意 0,而不是“0”