You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python的LXML和Requests获取SOAP响应的Status属性

解决SOAP响应中获取PlexViewResponse属性的问题

核心解决思路

要获取<api:PlexViewResponse>的Status属性以及可能存在的Error属性,关键是先通过命名空间定位到该元素,再用元素的get()方法读取属性——这个方法能安全处理属性不存在的情况(返回None),不用额外做异常捕获。

完整代码示例

结合你已有的代码,补充后的实现如下:

# 设置命名空间
nsmap = {'api': 'http://alu.com/plexwebapi/api'}

# 获取Session ID
SessionID = com_login.findall('.//SessionId', nsmap)[0].text

# 定位api:PlexViewResponse元素
plex_response = com_login.find('.//api:PlexViewResponse', nsmap)

# 获取Status属性值(不存在则返回None)
status = plex_response.get('Status')

# 获取可能存在的Error属性值(不存在则返回None)
error = plex_response.get('Error')

# 后续逻辑示例
if status == 'SUCCESS':
    print(f"登录成功,SessionID: {SessionID}")
elif error:
    print(f"登录失败,错误信息: {error}")
else:
    print("未知响应状态")

关键说明

  • 用find('.//api:PlexViewResponse', nsmap)定位目标元素:因为响应里通常只有一个PlexViewResponse,用find()比findall()更高效,直接返回匹配的第一个元素。
  • get()方法的安全性:不管属性是否存在,都不会抛出异常,返回None的特性刚好适配你需要处理Error属性的场景——可以直接通过判断error是否为None来确定是否有错误信息。

内容的提问来源于stack exchange,提问作者Kelso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 20:42:07