Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 字符串索引必须是整数?_Python_Json - Fatal编程技术网

Python 字符串索引必须是整数?

Python 字符串索引必须是整数?,python,json,Python,Json,嘿,我在访问一些列表时遇到问题 我可以使用此代码访问项目: data = session.get(BASE_URL + 'tori_market.php',params={'format': 'json'}).json() except ValueError: for item in data['items']: print(item['price']) 但我无法使用相同的代码访问用户: data = session.get(BASE_URL + 'tori_m

嘿,我在访问一些列表时遇到问题

我可以使用此代码访问
项目

    data = session.get(BASE_URL + 'tori_market.php',params={'format': 'json'}).json()
except ValueError:
    for item in data['items']:
        print(item['price'])
但我无法使用相同的代码访问
用户

data = session.get(BASE_URL + 'tori_market.php',params={'format': 'json'}).json()
except ValueError:
    for users in data['user']:
        print(user['max'])
编辑:我发布了错误的代码,这是我正在使用的代码。

data = session.get(BASE_URL + 'tori_market.php',params={'format': 'json'}).json()
except ValueError:
    for users in data['user']:
        print(users['balance'])
怎么了
您可以检查API目录是如何构建的

完整回溯是:

    Traceback (most recent call last):
  File "/Users/Cristi/Desktop/RealBot/prova.py", line 34, in <module>
    data = session.get(BASE_URL + 'tori_market.php',params={'format': 'json'}).json()
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/requests/models.py", line 799, in json
    return json.loads(self.text, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/json/__init__.py", line 318, in loads
    return _default_decoder.decode(s)
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/json/decoder.py", line 343, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/json/decoder.py", line 361, in raw_decode
    raise ValueError(errmsg("Expecting value", s, err.value)) from None
ValueError: Expecting value: line 1 column 1 (char 0)
回溯(最近一次呼叫最后一次):
文件“/Users/Cristi/Desktop/RealBot/prova.py”,第34行,在
data=session.get(BASE_URL+'tori_market.php',params={'format':'json'}).json()
json格式的文件“/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site packages/requests/models.py”,第799行
返回json.load(self.text,**kwargs)
文件“/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/json/_init__.py”,第318行,在loads中
返回\u默认\u解码器。解码
文件“/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/json/decoder.py”,第343行,在decode中
obj,end=self.raw\u decode(s,idx=\u w(s,0.end())
文件“/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/json/decoder.py”,第361行,原始解码
从“无”引发ValueError(errmsg(“期望值”,s,err.value))
ValueError:应为值:第1行第1列(字符0)
在处理上述异常期间,发生了另一个异常:

Traceback (most recent call last):
  File "/Users/Cristi/Desktop/RealBot/prova.py", line 37, in <module>
    print(users['balance'])
TypeError: string indices must be integers
回溯(最近一次呼叫最后一次):
文件“/Users/Cristi/Desktop/RealBot/prova.py”,第37行,在
打印(用户[“余额])
TypeError:字符串索引必须是整数
一旦这是一个密码页面,我就可以给你一个截图。

编辑的答案

上面的用户是json数据中的一个键,因此

for users in data["user"]
您已经在迭代它的键了

相反,为了简洁起见

for key in data["user"]:
    print key, data["user"][key]
这将为您打印用户dict中的所有数据。所以现在
可以获取
的值“balance”


原始答案

这是
用户
用户
之间的打字错误,您使用:

for users in data['user']:
但访问它的方式是:

print(user['max'])
print(users['max'])
而是通过以下方式访问它:

print(user['max'])
print(users['max'])

那么,您得到的错误的完整回溯是什么?您是否验证
数据
是否有此密钥?您提供给我们的文档链接受密码保护,如果没有帐户,我们无法在那里看到任何内容。从mu的回答中,您可以看到为什么我们需要完整的错误消息;它会给我们一个线索,就是抛出异常的是
print(user['max'])
行。你在代码的其他地方定义了
user
吗?啊,大概
user
是以前定义的,是一个字符串。好吧,我修改了第一篇文章,添加了一个屏幕!你能解释一下如何进行新的查询以便正常工作吗?几分钟后我会试试,现在我有一些事情要做,无法访问计算机。@Cristian抱歉,请忽略该评论,我当时没有看到您附加的图像。检查编辑。。如果这有帮助的话,别忘了:)如果我现在想要平衡,我可以这样做:balan=key['balance']?