&引用;字符串索引必须是整数;在Python中删除json时出错
所以我想从一个网站上获取一些数据。网址是&引用;字符串索引必须是整数;在Python中删除json时出错,python,Python,所以我想从一个网站上获取一些数据。网址是 https://rbx.rocks/apis/item?id=1285307 所以现在我有 print requests.get('https://rbx.rocks/apis/item?id=1285307').json()[0]['stats'] 如果运行,则给出错误“字符串索引必须是整数” 我目前正在运行python 2.7,您需要解析JSON对象 将json.loads()添加为: 要确定错误源,您可以执行“一次一个操作”,并获取结果的详细信
https://rbx.rocks/apis/item?id=1285307
所以现在我有
print requests.get('https://rbx.rocks/apis/item?id=1285307').json()[0]['stats']
如果运行,则给出错误“字符串索引必须是整数”
我目前正在运行python 2.7,您需要解析JSON对象 将json.loads()添加为:
要确定错误源,您可以执行“一次一个操作”,并获取结果的详细信息,例如
a = requests.get('https://rbx.rocks/apis/item?id=1285307')
print(a, type(a))
b = a.json()
print(b, type(b))
c = b[0]
print(c, type(c))
d = c['stats']
print(d, type(d))
这显然不是解决方案,但:
尝试删除
[0]
仍会出现相同的错误。打印请求的结果。获取('https://rbx.rocks/apis/item?id=1285307').json()[0]
只打印“{”这就是问题所在。您试图使用索引“stats”对字符串“{”进行索引,显然这是没有意义的。当您这样做时,[0]
您将获得json中的第一个字符({
)。您只需执行.json()
(无[0]
),然后稍微解析该json。谢谢。我曾想过执行json.loads,但当我执行该操作时,我将其设置为打印json.loads(requests.get('https://rbx.rocks/apis/item?id=1285307').json()['stats'])
我明白了。您可以按照@sancho bellow的建议单独打印每个步骤,以避免将来出现此类问题。我从未想过这一点。谢谢您的帮助。
a = requests.get('https://rbx.rocks/apis/item?id=1285307')
print(a, type(a))
b = a.json()
print(b, type(b))
c = b[0]
print(c, type(c))
d = c['stats']
print(d, type(d))