我现在已经研究了几个小时了,无法弄清楚如何让它发挥作用。我有一个JSON数据文件,每个项目有三个类别:deck,description和name。我试图绘制"名称"每个项目0到99的值,并将该数据保存到文本文件。
我不能为我的生活弄清楚我应该怎么做。我很容易加载数据,我可以打印出一个单独的值:
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新手,所以如果我忽略了一些非常明显的东西。
答案 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