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”
答案 0 :(得分:2)
由于响应似乎已经在json中,因此无需使用json.dumps
。
json.dumps
将返回一个字符串,该字符串无法明显编入索引,从而导致该错误。
答案 1 :(得分:0)
请求响应.json()
方法已经将字符串的内容加载到json。
你应该使用它,但是你的代码稍后将它序列化为字符串,因此错误(token
是你期望的字典的字符串表示,而不是字典)。您应该省略json.dumps(response)
行,然后使用response['ValidThrough']
此处还有另一个错误,即使您认为.json()
会返回一个应该再次反序列化的字符串,您应该使用json.loads(response)
将其加载到dict(不转储再次序列化)