无法循环嵌套的Json,get error(TypeError:列表索引必须是整数,而不是str)

2024-10-01 13:25:48 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我到处找,没有找到解决办法。你知道吗

import urllib2
import json

shabad = raw_input('Shabad Number: ')
hdr = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36'}
igurbani_api =  urllib2.Request('https://lab.sarabveer.me/igurbani-api/?&mode=2&shabadNo=' + shabad + '&format=json', headers = hdr)
json_obj = urllib2.urlopen(igurbani_api)
data = json.load(json_obj)

for item in data['gurbani']['shabad']:
    print item['Gurmukhi']

当我运行这个时,我得到一个错误:TypeError: list indices must be integers, not str

下面是一个实际JSON的示例:EXAMPLE

我基本上需要循环JSON并显示每个Gurmukhi变量。你知道吗


Tags: importapijsonobjinputdatarawhdr
2条回答

试试这个:

for d in data['gurbani']:
    print d['shabad']['Gurmukhi']

这是因为data['gurbani']返回一个列表

data['gurbani']是一个列表。。。因此

data['gurbani']["shabad"]是一个错误

试试看

for item in data['gurbani'][0]["shabad"]

或者真的可能

for translation in data['gurbani']:
    print translation["shabad"]["Gurmukhi"]

相关问题 更多 >