我试图解析JSON并检索某个值(ID),但我得到了以下错误:
TypeError: string indices must be integers
下面是我的代码和JSON:
import json
# JSON string
info_symbol = '{"status":{"timestamp":"2023-01-21T15:18:43.937Z","error_code":0,"error_message":null,"elapsed":21,"credit_count":1,"notice":null},"data":{"BITCOIN":{"id":15907,"name":"HarryPotterObamaSonic10Inu","symbol":"BITCOIN"}}}'
# Convert string to Python dict
test_dict = json.loads(info_symbol)
print(test_dict['data'])
for name in test_dict['data']['BITCOIN']:
print(name['id'])
我只想获取ID -因此:小行星15907
“编号”:15907,
3条答案
按热度按时间esyap4oy1#
在这种情况下,你不需要循环来只得到
id
。如果你需要字典中的所有key和values,那么你可以像下面这样迭代-输出
3ks5zfa02#
输出
所以,如果执行
name['id']
,在第一次迭代中会得到id
,在第二次迭代中会抛出错误您可以通过以下方式获得id的值:
理解:
dffbzjpn3#
研究员,
test_dict['data]['BITCOIN']
表示为:你正在迭代上面的字典,所以当你使用
print(name[id])
,name
迭代器的时候,你会得到一个键:id,name和symbol的值。只需访问ID,再添加一个括号:
去掉for循环。