嘿,我在访问某些列表时遇到问题。
我可以使用以下代码访问Items
:
data = session.get(BASE_URL + 'tori_market.php',params={'format': 'json'}).json()
except ValueError:
for item in data['items']:
print(item['price'])
但我无法使用相同的代码访问User
:
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'])
它出了什么问题?
您可以在此link中查看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)
在处理上述异常期间,发生了另一个异常:
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
只要它是一个密码页面,我就可以为您提供屏幕截图here。
答案 0 :(得分:1)
已编辑的回答
上面的用户是json数据中的一个键,所以当你这样做时
for users in data["user"]
你已经在迭代它了。
相反,为了简洁起见,请
for key in data["user"]:
print key, data["user"][key]
这将打印用户字典中的所有数据。所以现在key
可以采用"balance"
等的值
原始回答
这是users
和user
之间的拼写错误,您使用:
for users in data['user']:
但请将其视为:
print(user['max'])
取而代之的是:
print(users['max'])