如何在Python中提取多个JSON项?

时间:2018-05-22 04:54:28

标签: python json

我现在已经研究了几个小时了,无法弄清楚如何让它发挥作用。我有一个JSON数据文件,每个项目有三个类别:deck,description和name。我试图绘制"名称"每个项目0到99的值,并将该数据保存到文本文件。

Format of json data

我不能为我的生活弄清楚我应该怎么做。我很容易加载数据,我可以打印出一个单独的值:

with open('gbdata1.json', 'r') as gbdata1:
    data = json.load(gbdata1)

print(data['results'][0]['name'])

我试过传递一份我需要的数字列表:

 names = [0, 1, 2, 3, 4, 5]

   for item in data['results'][names]['name']:
       print(item)

但它说:

  

TypeError:list indices必须是整数或切片,而不是list

所以我尝试创建一个变量,然后用forloop和+ =运算符递增变量,但这也没有用。我是一个全面的JSON新手,所以如果我忽略了一些非常明显的东西。

1 个答案:

答案 0 :(得分:1)

你稍微偏离了,你需要做的是迭代names列表并用迭代变量替换硬编码的print(data['results'][0]['name'])

names = ['1', '2', '3', '4', '5']
for n in names:
    print(data['results'][n]['name']) # You can access other attributes here

另请注意,JSON键始终为string,因此您的names = [1, 2, 3, 4]无法正常工作,因为它具有整数值,您可以将这些元素转换为字符串,也可以将它们转换为字符串在访问for循环中的json之前进行字符串:

for n in names:
    print(data['results'][str(n)]['name']) # You can access other attributes here