Python中文
首页
教程
问答
标签
搜索
登录
注册
尝试在Python中解析SOAP响应
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在努力寻找一种方法来解析从SOAP响应返回的数据。我只熟悉Python(v3.4),但对它比较陌生。我正在使用suds jurko从第三方SOAP服务器获取数据。响应以“ArrayOfXmlNode”的形式返回。我尝试以不同的方式使用ElementTree来解析数据,但是要么没有得到任何信息,要么得到“TypeError:invalid file:(ArrayOfXmlNode)”错误。谷歌搜索如何处理ArrayOfXMLNode类型的响应,却一无所获。在</p> <p>SOAP响应的第一部分是:</p> <pre><code>(ArrayOfXmlNode){ XmlNode[] = (XmlNode){ Hl = (Hl){ ID = "22437790" Name = "Cameron" SpeciesID = "1" Sex = "Male" PrimaryBreed = "German Shepherd" SecondaryBreed = "Mix" SN = "" Age = "35" OnHold = "No" Location = "Foster Home" BehaviorResult = "" Photo = "http://sms.petpoint.com/sms/photos/615/123.jpg" } }, </code></pre> <p>我尝试过用类似以下代码遍历数据:</p> ^{pr2}$ <p>上面的代码给出了“result[0]”中的整个响应。下面我尝试从数据创建一个列表,但是只得到最后一个节点(节点是从ID到照片的1组信息)。尝试修改此方法会给我任何结果,或者什么都没有,或者只给出最后一个节点。在</p> <p>所以我试着用简单的代码利用ElementTree来测试它,但是只得到“无效文件”错误。在</p> <pre><code>import xml.etree.ElementTree as ET from suds.client import Client url = 'http://qag.petpoint.com/webservices/AdoptableSearch.asmx?WSDL' client = Client(url) result = client.service.adoptableSearchExtended('nunya', 0, 'A', 'All', 'N') pet_info = ET.parse(result) print(pet_info) </code></pre> <p>结果是:</p> <pre><code>Traceback (most recent call last): File "D:\Python\Eclipse Workspace\KivyTest\src\root\nested\Parse.py", line 11, in <module> pet_info = ET.parse(result) File "D:\Programs\Python34\lib\xml\etree\ElementTree.py", line 1186, in parse tree.parse(source, parser) File "D:\Programs\Python34\lib\xml\etree\ElementTree.py", line 587, in parse source = open(source, "rb") TypeError: invalid file: (ArrayOfXmlNode){ XmlNode[] = (XmlNode){ Hl = (Hl){ ID = "20840097" Name = "Daisy" SpeciesID = "1" Sex = "Female" PrimaryBreed = "Terrier, Pit Bull" SecondaryBreed = "" SN = "" Age = "42" OnHold = "No" Location = "Dog Adoption" BehaviorResult = "" Photo = "http://sms.petpoint.com/sms/photos/615/40f428de-c015-4334-9101-89c707383817.jpg" } }, </code></pre> <p>有人能帮我指出正确的方向吗?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>请试试这个:</p> <pre><code>result[0][0] </code></pre> <p>这将为您提供数组的第一个元素(ArrayOfXmlNode)。 同样,试试这个:</p> ^{pr2}$ <p>这将为您提供元素result[0][1]的第三个元素。在</p> <p>希望这能提供另一种解决方案。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
当用户用PYTHON设置一个或一个不带值的URL时,他们怎么能输入一个/a的代码呢?
3 回答
当用户登录到站点时,如何显示不同的导航栏
8 回答
当用户登录时,在Flask中向用户显示处理结果
8 回答
当用户的Flask会话结束时,我如何从Redis后端中移除所有Celery结果?
8 回答
当用户的Okta配置文件字段当前为blan时,更新该字段
1 回答
当用户的付款逾期2天时,从Django模型检索数据
4 回答
当用户的消息以问号结尾时,如何让机器人说些什么?
1 回答
当用户的系统上可能也安装了Python 2.7时,如何在用户的系统上运行Python 3脚本?
2 回答
当用户确定打印数量时,使用Matplotlib打印动画
7 回答
当用户离开时是否可以删除整个网页?
2 回答
当用户给出一个单词时如何打印?
5 回答
当用户继续更改TKin中的值(使用trace方法)时,使用Entry并更新输入的条目
3 回答
当用户编辑表单字段时,从Django时间字段中删除秒数
7 回答
当用户被更改时,消息不会来自web套接字
7 回答
当用户访问表单时,如何使表单为只读,而不具有更改权限
8 回答
当用户试图更改对象的值时,使用描述符类引发RuntimeError
7 回答
当用户调整GUI的大小时,是否有方法更改GUI内容的大小?
4 回答
当用户调整风的大小时,pythontkinter小部件的大小会不均匀
1 回答
当用户购买某个类别时,是否查找其他类别的销售?
5 回答
当用户转到上一页时,Django和芹菜插入操作
5 回答