我正在请求使用:
response = requests.post('https://xxxx.net:8089/services/search/jobs/' + job_id, auth=(splunk_user, splunk_pass), verify=False)
现在我使用print(response.text)
. 我希望能够只打印的值,<s:key name="dispatchState">DONE</s:key>
看看它是“完成”还是任何值。
我正在请求使用:
response = requests.post('https://xxxx.net:8089/services/search/jobs/' + job_id, auth=(splunk_user, splunk_pass), verify=False)
现在我使用print(response.text)
. 我希望能够只打印的值,<s:key name="dispatchState">DONE</s:key>
看看它是“完成”还是任何值。
解决方案 1
由于输出格式为 xml,您可以使用 python 的lxml
模块解析 xml,如下所示。
import lxml.etree as et
root = et.fromstring(response.text)
done_state = root.xpath("//s:key[@name='dispatchState']/text()", root.nsmap)[0]
您可以lxml
使用 pip安装
pip install lxml
您可以在此处找到更多文档和教程。
解决方案 2
如果结构是常量,您可以使用简单的正则表达式来获取所需的信息:
import re
match = re.search('<s:key name\="dispatchState">(.*?)</s:key>', response.text)
result = match.group(1)
您可以在此处获得有关正则表达式的更多信息。