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

标签 python arrays json

我正在使用 JSON 文件并使用 Python。我正在尝试打印嵌套在数组中的对象。我想从以下数组中打印选择对象(例如“名称”、“thomas_id”)(它是否被认为是数组中“对象”的“列表”?该数组会被称为“共同赞助者”数组吗?):

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

它一直在返回用空格分隔的结果。到目前为止,我对此很满意。

最佳答案

您正在使用字符串来索引列表,'0' 是一个字符串,而不是一个整数。删除引号:

print(data['cosponsors'][0]['thomas_id'])

如有疑问,请检查部分结果;看看 print(type(data['cosponsors'])) 产生了什么;如果它产生 <type 'list'> ,你知道你需要使用整数索引,如果你得到 <type 'dict'> ,使用键(可以通过在字典上调用 print(list(...)) 来获得一个列表)等等。

通常,列表包含可变数量的对象;它可能只是一个、零或一整个负载。您可以遍历这些对象:
for cosponsor in data['cosponsors']:
    print(cosponsor['thomas_id'])

该循环将 cosponsor 一一设置为 data['cosponsors'] 列表中的每个对象。

关于python - 使用python打印嵌套在数组中的json对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34185780/

相关文章:

c - 三维数组的 memcpy

json - 解析json时出现nodejs object.property未定义错误

c - C中的无符号字符数组串联

python - opencv安装中的python错误

python - CSS/Xpath 选择器,用于具有特定类的元素,其中包含具有特定文本的元素

python - 如何使用正则表达式从文本中查找特定单词并返回所有匹配项?

java - 交换两个数组中的值时出现无法解释的问题

json - 我无法将对象数组转换为可以发送和存储到 Web 服务器的格式

c# - 从 Web api 获取 json 数组到 C#

python - 使用 pip 安装包时出现 ssl 错误