【发布时间】:2020-12-08 22:55:36
【问题描述】:
data = '{"abc":null, "data":[{"admin":0, "customer":"no", "info":{"id":76, "type":"guest"}}, {"admin":0, "customer":"no", "info":{"id":73, "type":"member"}}]}'
a = json.loads(data)
print(a["data"]["info"]["type"])
Output: TypeError: list indices must be integers or slices, not str
我需要知道如何解决这个问题,输出为:["guest", "member"]。
编辑::谢谢大家的解答,我解决了问题,但是我正在努力学习,请问如果数据包含空值怎么办?
例子:
import json
data = '{"abc":null, "data":[{"admin":0, "customer":"no", "info":{"id":76, "type":"guest"}}, {"admin":0, "customer":"no", "info":{"id":73, "type":"member"}}, {"admin":0, "customer":"no", "info":null}]}'
a = json.loads(data)
print([t["info"]["type"] for t in json.loads(data)["data"]])
Output: TypeError: 'NoneType' object is not subscriptable
【问题讨论】:
-
@Carcigenicate 那是什么?以及我该如何解决?
-
你忘了在表达式中提到
a。a["data"][0]["info"]["type"]. -
您问题中的
data字符串是无效的 JSON 格式,json.loads()产生以下错误:json.decoder.JSONDecodeError: Expecting ',' delimiter: line 1 column 93 (char 92)。请edit您的问题并解决此问题。
标签: python arrays json python-3.x parsing