Python请求-指定要在xml响应中获取的内容

时间:2019-04-23 10:31:51

标签: python xml api

我在python代码中创建了请求,这给了我类似波纹管的响应:

<tasks>
    <task>
        <description>description</description>
        <name>test task 1</name>
        <sysID>410d6c0bc0a801c901838d8ac43b3279</sysID>
        <type>Windows</type>
        <version>2</version>
    </task>
    <task>
        <description>description</description>
        <name>test task 2</name>
        <sysID>410d6880c0a801c90196685fcc1ecb47</sysID>
        <type>Windows</type>
        <version>9</version>
    </task>
</tasks>

它列出了所有任务。

但是我只需要获取任务名称的列表即可。有没有一种方法可以在请求中指定它?还是我需要在之后解析?

或更笼统的问题:是否有一种方法可以在请求中定义将哪些标签和属性作为响应返回?

我现在的要求:

response = req.post(uac_path, auth=HTTPBasicAuth(user, pw), 
headers=headers, data=prop_params, verify=True)

2 个答案:

答案 0 :(得分:1)

您需要先解析响应。 Python中有几个用于解析XML的软件包:

 - xml.dom
 - xml.dom.minidom
 - xml.dom.pulldom
 - xml.sax
 - xml.parser.expat
 - xml.etree.ElementTree

您可以在Python中选择其中任何一个或其他第三方工具

答案 1 :(得分:1)

决定返回什么是服务器的责任,而不是客户的责任。除非服务器为您提供某种方法来指定应返回的内容(例如,如果它是GraphQL API),您将需要自己解析响应。