2017-09-05 4 views
0

suds 0.6で開発されたコードをzeep 2.4.0に移植します。zeep.exceptions.ValidationErrorの取得:sudsで動作するメソッドの要素がありません

前の泡コード:

client = Client(WSDLfile, proxy=proxy, faults=True) 
config = client.factory.create('perUserDataExportConfiguration') 
config.param1 = 'something' 
... 
data = client.service.exportPerUserData(username,password,config) 

ZEEPコード:

session = requests.Session() 
session.verify = False 
transport = Transport(session=session) 
client = Client(WSDLfile, strict=False, transport=transport) 
config = client.type_factory('ns0').perUserDataExportConfiguration() 
config.param1 = 'something' 
... 
data = client.service.exportPerUserData(username,password,config) 

は、その後、私は zeep.exceptions.ValidationError: Missing element param_i_didnt_setを取得します。 config.__values__に見ると

OrderedDict([('param1', 'something'), 
      ('param_i_didnt_set', None), ...]) 

を示しsudsconfigオブジェクトは、それが空の変数を持つキーの数が含まれているという点で似ていますが、ValidationErrorssudsスローしません。

答えて

0

this Github issuezeep.xsd.SkipValueを使用しました。だから私はそれでconfigになしで任意のパラメータで置き換えた:

for key in config: 
    if config[key] is None: 
     config[key] = zeep.xsd.SkipValue 

そしてclient.service.exportPerUserData(username,password,config)働いていたが...

関連する問題