suds调用webserive时出现suds.TypeNotFound错误

Posted 宇之逸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了suds调用webserive时出现suds.TypeNotFound错误相关的知识,希望对你有一定的参考价值。

一、正常调用

1 # coding:utf-8
2 from suds.client import Client
3 
4 if __name__ == __main__:
5     client = Client(http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl)
6     print client.service.getMobileCodeInfo(15116020790, ‘‘)
7 
8 ## result
9 15116020790:湖南 株洲 湖南移动全球通卡

 

二、调用出现错误

 1 # coding: utf-8
 2 from suds.client import Client
 3 
 4 if __name__ == __main__:
 5     client = Client(http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl)
 6     print client
 7 
 8 ## result
 9 File "C:\project\Test\venv\lib\site-packages\suds\xsd\sxbasic.py", line 422, in dependencies
10     raise TypeNotFound(self.ref)
11 suds.TypeNotFound: Type not found: (schema, http://www.w3.org/2001/XMLSchema, )

 

三、解决方式

 1 # coding: utf-8
 2 from suds.client import Client
 3 from suds.xsd.doctor import ImportDoctor, Import
 4 
 5 if __name__ == __main__:
 6     imp = Import(http://www.w3.org/2001/XMLSchema,
 7                  location=http://www.w3.org/2001/XMLSchema.xsd)
 8     imp.filter.add(http://WebXml.com.cn/)
 9     doctor = ImportDoctor(imp)
10     client = Client(http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl, doctor=doctor)
11     # print client
12     print client.service.getWeatherbyCityName(u上海)
13 
14 ## result
15 (ArrayOfString){
16    string[] = 
17       "直辖市",
18       "上海",
19       ...,
20       "今日天气实况:气温:23℃;风向/风力:静风 0级;湿度:77%;紫外线强度:弱。空气质量:中。", ...
21  }

 

参考:

https://stackoverflow.com/questions/4719854/soap-suds-and-the-dreaded-schema-type-not-found-error

https://bitbucket.org/jurko/suds/issues/20/typenotfound-schema

以上是关于suds调用webserive时出现suds.TypeNotFound错误的主要内容,如果未能解决你的问题,请参考以下文章

为啥调用 API 时出现 CORS 错误

创建 MPI 结构时出现问题,调用 MPI_Bcast 时出现错误 11

为啥调用 GetThreadTimes 时出现“句柄无效”错误?

进行 JNI 调用时出现 Unsatisfied Link 错误

调用类方法时出现“调用未定义函数”错误

调用 getLastKnownLocation 时出现 SecurityException