在JSON文件中搜索字符串-Python

时间:2018-06-22 11:12:01

标签: python regex

我正在尝试学习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-281client AP

import re

result = re.findall(r'\bkey:(\S+)\s, data)
print result

但一无所获

也尝试过

print data['key']

但得到:

TypeError: string indices must be integers, not str

2 个答案:

答案 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"之外的其他位置。