我正在学习使用Python和API(特别是此世界杯API,http://www.kimonolabs.com/worldcup/explorer)
JSON数据如下所示:
[
{
"firstName": "Nicolas Alexis Julio",
"lastName": "N'Koulou N'Doubena",
"nickname": "N. N'Koulou",
"assists": 0,
"clubId": "5AF524A1-830C-4D75-8C54-2D0BA1F9BE33",
"teamId": "DF25ABB8-37EB-4C2A-8B6C-BDA53BF5A74D",
"id": "D9AD1E6D-4253-4B88-BB78-0F43E02AF016",
"type": "Player"
},
{
"firstName": "Alexandre Dimitri",
"lastName": "Song-Billong",
"nickname": "A. Song",
"clubId": "35BCEEAF-37D3-4685-83C4-DDCA504E0653",
"teamId": "DF25ABB8-37EB-4C2A-8B6C-BDA53BF5A74D",
"id": "A84540B7-37B6-416F-8C4D-8EAD55D113D9",
"type": "Player"
},
]
我只是试图打印此API中的所有名字。这是我所拥有的:
import urllib2
import json
url = "http://worldcup.kimonolabs.com/api/players?apikey=xxx"
json_obj = urllib2.urlopen(url).read
readable_json = json.dumps(json_obj)
playerstuff = readable_json['firstName']
for i in playerstuff:
print i['firstName']
但是当我运行它时,出现错误“ … TypeError,… TypeError:列表索引必须是整数,而不是str”。
我四处寻找解决方案,但似乎发现了更多“更深入”的API问题,但我还不是很了解,因此对我需要做的任何帮助或解释都将是惊人的。谢谢!
首先,您应该使用json.loads
而不是json.dumps
。 loads
将JSON源文本转换为Python值,反之dumps
则相反。
修复该问题之后,readable_json
将根据问题顶部的JSON代码段列出该列表,因此readable_json['firstName']
毫无意义。获取'firstName'
列表中每个元素的字段的正确方法是消除该playerstuff = readable_json['firstName']
行并更改for i in playerstuff:
为for i in readable_json:
。
问题内容: 我的json文件看起来像这样,我正在尝试在for循环中访问元素。 我这样做是这样的: 但是我收到错误消息:“ TypeError:列表索引必须是整数,而不是dict”。我是python(和json)的新手。有人可以建议我要去哪里错吗? 问题答案: 您遍历该 值 通过引用的名单, 没有 指标。 只需 直接 使用这些值(字典): 您可能想给它一个更有意义的循环名称:
问题内容: 我目前正在尝试从发布请求响应中解析一些数据,并且不断收到此错误:“ TypeError:列表索引必须是整数或切片,而不是str” Python代码 JSON回应 我做了类似的代码,但这是一个get请求,一切都很好。 问题答案: 是一个数组,因此您不需要int,可以在after之后添加,它应该可以工作。然后,您可以在中引用对象内的键。
我目前正试图解析get请求响应中的一些数据,但我一直遇到这样的错误:“TypeError:列表索引必须是整数或片,而不是str” 如果有人能帮我解决我想解决的问题,那就太好了。提前非常感谢你。
问题内容: 我有两个列表,我想合并到一个数组中,最后将其放入一个csv文件中。我是使用Python数组的新手,但我不明白如何避免出现此错误: 并得到: 我的计数工作如何? 问题答案: 首先,应为整数而不是字符串: 其次,您的循环应使用构造: 第三,将自动增加,因此删除以下行: 注意,给定两个列表的长度相同,它们也可以只是两个列表:
问题内容: 我正在努力使机器人围绕8 x 8的2d网格室移动,其中一部分正在初始化传感器,该传感器由围绕机器人的最近5个瓦片组成。 在这里,我创建了一个由5个元素组成的数组。 但是当我尝试像这样设置传感器的值时: 我得到“列表索引必须是整数,而不是元组”的错误。 问题答案: 您说的是一个“二维网格”-我假设它是一个列表列表。在这种情况下,您应该以以下方式访问其元素 而不是用该对索引外部列表。
我一直得到错误: TypeError:列表索引必须是整数或片,而不是元组 尽管如此,就我有限的理解而言,列表索引是一个整数。 此代码: 给我上面的TypeError。 虽然当我这样做的时候: 这是怎么回事?