Python使用suds调用webservice报错解决方法:AttributeError: 'Document' object has no attribute 'set'

时间:2022-09-29 08:14:35

使用python的suds包调用webservice服务接口,报错:AttributeError: 'Document' object has no attribute 'set'

调用服务接口代码:

#coding=utf-8
from suds.client import Client client = Client('http://port.patentstar.cn/bns/PtDataSvc.asmx?wsdl')
print client pt = client.factory.create('PatentDataType')
res = client.service.GetPatentData('DE10327589B4',pt.PDFFileUrl)
print res

WSDL服务结构:

Python使用suds调用webservice报错解决方法:AttributeError: 'Document' object has no attribute 'set'

报错信息:

Python使用suds调用webservice报错解决方法:AttributeError: 'Document' object has no attribute 'set'

解决方法:

通过上图错误信息,错误指定到了appender.py 中的append函数 (此函数注释是我自己更改的)

以下是报暴出错误,的函数:

通过,对该函数分析,如果传过来的参数以_下止划线开头,会进行一个特列处理。

服务接口函数,两个参数都是以下划线开头。

Python使用suds调用webservice报错解决方法:AttributeError: 'Document' object has no attribute 'set'

报错的行为:parent.set(attr,value)

我们服务接口,参数名都是以下划线开头。于是分析之后,将关于处理下划线的代码行注释掉。

Python使用suds调用webservice报错解决方法:AttributeError: 'Document' object has no attribute 'set'

更改了suds,包中的文件后,重新调用服务接口。

结果如下:成功返回正确结果

Python使用suds调用webservice报错解决方法:AttributeError: 'Document' object has no attribute 'set'

至此,问题解决了,问题原因,应该是suds包的作者,没有考虑到其它服务接口,参数以下划线开头。

因为在python中下划线开头的变量,有特殊意义,是私有的。

以上是个人理解,如果个位大神,分析出有其它原因,分享一下。多谢谢。

Python使用suds调用webservice报错解决方法:AttributeError: 'Document' object has no attribute 'set'的更多相关文章

  1. Python中pip install MySQL-python报错解决方法

    环境 Centos 7(其他Centos或者RHEL一样) 问题 在执行 pip install MySQL-python 时报错如: Command "python setup.py eg ...

  2. Python国内镜像源及报错解决方法

    国内镜像源: 阿里云:https://mirrors.aliyun.com/pypi/simple/ 清华:https://pypi.tuna.tsinghua.edu.cn/simple/ 中国科技 ...

  3. php调用webservice报错Class 'SoapClient' not found

    原文:php调用webservice报错Class 'SoapClient' not found php在调用webservice时,报告如下类似错误: ( ! ) Fatal error: Clas ...

  4. eclipse创建的maven项目,pom.xml文件报错解决方法

    [错误一:]maven 编译级别过低 [解决办法:] 使用 maven-compiler-plugin 将 maven 编译级别改为 jdk1.6 以上: <!-- java编译插件 --&gt ...

  5. MyEclipse Server view报错解决方法

    MyEclipse Server view报错解决方法 方法/步骤     启动MyEclipse,弹出一个框,报错. ---------------------------------------- ...

  6. Loadrunner参数化逗号报错解决方法

    Loadrunner参数化逗号报错解决方法     介绍Loadrunner参数化时,参数中包含有逗号时出错的解决方法. 在Loadrunner进行参数化时,参数中如果含有逗号,编辑保存后会报错: 此 ...

  7. Android Studio support 26&period;0&period;0-alpha1 Failed to resolve&colon; com&period;android&period;support&colon;appcompat-v7&colon;27&period;&plus; 报错解决方法

    AS下如何生成自定义的.jks签名文件, 以及如何生成数字签名 链接:http://www.cnblogs.com/smyhvae/p/4456420.html 链接:http://blog.csdn ...

  8. iOS url带中文下载时 报错解决方法

    问题描述:下载文件时, 请求带中文的URL的资源时,比如:http://s237.sznews.com/pic/2010/11/23/e4fa5794926548ac953a8a525a23b6f2/ ...

  9. jquery jssdk分享报错解决方法

    jssdk分享报错解决方法 一般都是参数传错了

随机推荐

  1. RAR和ZIP&colon;压缩大战真相

    转:http://fqd2eh4y.blog.163.com/blog/static/69195855200801035015857 前言--王者归来? 等待足足两年之久,压缩霸主WinZip终于在万 ...

  2. 17&rpar; JMS&colon; java Message Service&lpar;Java消息服务&rpar;

         JMS是一个标准,就像EJB,有很多开源的,商业的实现,ms技术对应的规范是jsr914,规范的实现称为jms provider,常见的实现有ActiveMQ.JBoss MQ.IBM We ...

  3. Python 学习之urllib模块---用于发送网络请求,获取数据

    1.urllib urllib是Python标准库的一部分,包含urllib.request,urllib.error,urllib.parse,urlli.robotparser四个子模块. (1) ...

  4. &lbrack;置顶&rsqb; Ajax程序:处理异步调用中的异常&lpar;使用Asp&period;Net Ajax内建的异常处理方法&rpar;

    无论在Window应用程序,还是Web应用程序以对用户友好的方式显示运行时的异常都是很有必要,尤其对于可能有很多不确定因素导致异常的Web应用程序;在传统的Web开发中,处理异常的方式——设计专门一个 ...

  5. java 字符串 asc 加密解密

    package com; public class MD5Test { /** * @param args */ public static void main(String[] args) { Sy ...

  6. iOS&lowbar;17&lowbar;控制开关&lowbar;TabBarController&lowbar;由storyboard道路

    最后效果图: main.storyboard BeyondViewController.m中有一句关键代码,设置tabbarItem图片的样式(30*30) // // BeyondViewContr ...

  7. HTML target 属性

    定义和用法 <a> 标签的 target 属性规定在何处打开链接文档. 如果在一个 <a> 标签内包含一个 target 属性,浏览器将会载入和显示用这个标签的 href 属性 ...

  8. H5&lowbar;background-clip&lpar;css3——裁剪&rpar;

    利用background-clip实现此效果 在body里面只需要写:<div class="box"></div> 在样式里面写上: .box{ widt ...

  9. 实现鼠标hover动画效果自己理解的两种方法——练习笔记

    练习前端技术学院的任务,需要实现"导航栏中的链接,随着鼠标悬浮的位置,相应的链接下出现红色线段"的效果(如图1),我的理解有简易与稍显复杂一些的方法: 首先想到的就是直接利用伪元素 ...

  10. 在CMD中使用for命令对单行字符串做分割的方法

    我们都知道CMD中的for命令是执行循环命令的,数据来源可以是一个文件,一个命令的结果或一个字符串,只有这3种来源 如果是一个文件则对这个文件的所有字符串进行循环处理 如果是一个命令结果,那么对这个命 ...