我正在尝试学习python并陷入以下困境:
这是REST API输出(我连接的客户端:AP)
我运行多个requests
查询并获得了不同的客户端和CC-XXX值
data=response.content + " client:AP"
print data
{"id":"21984","key":"CC-2891","self":"https://jira.company.com/rest/api/latest/issue/21984"} client:AP
我需要将键值(CC-2891)和客户端AP(有时客户端不是AP)提取到2个不同的变量中
所需的输出CC-281
和client AP
import re
result = re.findall(r'\bkey:(\S+)\s, data)
print result
但一无所获
也尝试过
print data['key']
但得到:
TypeError: string indices must be integers, not str
答案 0 :(得分:0)
您收到json响应。使用json
模块。
例如:
import json
data = """{"id":"21984","key":"CC-2891","self":"https://jira.company.com/rest/api/latest/issue/21984"}"""
data = json.loads(data)
print(data["key"])
输出:
CC-2891
如果您使用的是requests
模块,则可以直接使用response.json()
例如:
data=response.json()
print(data["key"])
答案 1 :(得分:0)
您的错误,
TypeError: string indices must be integers, not str
是因为您已将" client:AP"
附加到响应中。
如果要使用一对客户端和相应的密钥,也许自己将它们存储在词典中?
像
lookup = {}
lookup["AP"] = response.json()["key"]
然后获得下一个响应,并将其存储在"AP"
之外的其他位置。