在Python中访问JSON数据

时间:2016-07-29 10:07:02

标签: python json hook.io

header = {'Content-type': 'application/json','Authorization': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' }  
url = 'https://sandbox-authservice.priaid.ch/login'
response = requests.post(url, headers = header, verify=False).json()
token = json.dumps(response)
print token['ValidThrough']

我想在我的webhook中打印ValidThrough属性,它通过POST调用作为JSON数据接收。我知道这里已经多次询问过了,但打印令牌['ValidThrough']对我来说不起作用。我收到错误“TypeError:string indices必须是整数,而不是str”

2 个答案:

答案 0 :(得分:2)

由于响应似乎已经在json中,因此无需使用json.dumps

字典上的

json.dumps将返回一个字符串,该字符串无法明显编入索引,从而导致该错误。

答案 1 :(得分:0)

请求响应.json()方法已经将字符串的内容加载到json。

你应该使用它,但是你的代码稍后将它序列化为字符串,因此错误(token是你期望的字典的字符串表示,而不是字典)。您应该省略json.dumps(response)行,然后使用response['ValidThrough']

此处还有另一个错误,即使您认为.json()会返回一个应该再次反序列化的字符串,您应该使用json.loads(response)将其加载到dict(不转储再次序列化)