【问题标题】:Getting XML value from attribute dispatchState with python and request使用 python 和请求从属性 dispatchState 获取 XML 值
【发布时间】:2019-05-30 02:48:59
【问题描述】:

我正在请求 splunk 工作,使用:

 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> 的值,看看它是“DONE”还是什么值。

【问题讨论】:

  • 示例输出:api_something723579333881950452911970-01-01T00:00:00.000+00:00s:key> 604800600 s:key> 93304DONE

标签: python python-3.x splunk splunk-sdk


【解决方案1】:

解决方案 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]

你可以使用 pip 安装lxml

pip install lxml

您可以找到更多文档和教程here

解决方案 2

如果结构是常量,您可以使用简单的正则表达式来获取所需的信息:

import re
match = re.search('<s:key name\="dispatchState">(.*?)</s:key>', response.text)
result = match.group(1)

您可以获取更多关于正则表达式的信息here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-05
    • 2021-11-17
    相关资源
    最近更新 更多