Python无法提取JSON中Verified对应Yes值,访问时报list不可调用错误
错误原因
data["addresses"]返回的是列表类型,你使用了圆括号()包裹"number",这是Python中调用函数/可调用对象的语法,列表不属于可调用对象,因此触发类型错误。- 即使把圆括号换成方括号,取值逻辑也有问题:列表需要先通过索引定位到具体的字典元素,才能进一步访问字典内的字段。
解决方法
1. 取指定位置地址的Verified值
列表索引从0开始,比如取第一个地址的Verified字段,代码如下:
data = {"addresses":[{"number":6,"0x0000000000000000000000000000000000000000":"BURN","Verified":"Yes","Type":"Address"},{"0x1010101010101010101010101010101010101010":"Facebook","Verified":"Yes","Type":"Address"}]} # [0]定位到列表第一个字典元素,再通过键名取Verified值 print(data["addresses"][0]["Verified"])
运行后输出为Yes。如果要取第一个地址的number字段,写法为data["addresses"][0]["number"],执行后返回6。
2. 遍历取出所有地址的Verified值
如果需要打印全部地址的Verified值,直接遍历列表即可:
data = {"addresses":[{"number":6,"0x0000000000000000000000000000000000000000":"BURN","Verified":"Yes","Type":"Address"},{"0x1010101010101010101010101010101010101010":"Facebook","Verified":"Yes","Type":"Address"}]} for addr in data["addresses"]: print(addr["Verified"])
运行后会输出两个Yes。
内容的提问来源于stack exchange,提问作者Varun W.
相关产品推荐
相关产品推荐

