python调用webservice接口字典问题

1、我在使用suds库去掉用web service接口时候的语法问题?

2、下图是接口文档

webservice接口文档
3、这是我调用时所写的代码

图片描述

4、当我运行的时候抱错误:

  File "import.py", line 8, in <module>
    res = client.service['ISysSynchroGetOrgWebServicePort'].getUpdatedElements(t).message
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/client.py", line 521, in __call__
    return client.invoke(args, kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/client.py", line 576, in invoke
    soapenv = binding.get_message(self.method, args, kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/bindings/binding.py", line 109, in get_message
    content = self.bodycontent(method, args, kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/bindings/document.py", line 95, in bodycontent
    add_param, self.options().extraArgumentErrors)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/argparser.py", line 83, in parse_args
    return arg_parser(args, kwargs, extra_parameter_errors)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/argparser.py", line 108, in __call__
    self.__process_parameters()
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/argparser.py", line 299, in __process_parameters
    self.__process_parameter(*pdef)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/argparser.py", line 294, in __process_parameter
    self.__in_choice_context(), value)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/bindings/document.py", line 86, in add_param
    p = self.mkparam(method, pdef, value)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/bindings/document.py", line 130, in mkparam
    return Binding.mkparam(self, method, pdef, object)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/bindings/binding.py", line 225, in mkparam
    return marshaller.process(content)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/mx/core.py", line 59, in process
    self.append(document, content)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/mx/core.py", line 72, in append
    self.appender.append(parent, content)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/mx/appender.py", line 88, in append
    appender.append(parent, content)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/mx/appender.py", line 229, in append
    Appender.append(self, child, cont)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/mx/appender.py", line 168, in append
    self.marshaller.append(parent, content)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/mx/core.py", line 72, in append
    self.appender.append(parent, content)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/mx/appender.py", line 88, in append
    appender.append(parent, content)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/mx/appender.py", line 284, in append
    Appender.append(self, parent, cont)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/mx/appender.py", line 168, in append
    self.marshaller.append(parent, content)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/mx/core.py", line 72, in append
    self.appender.append(parent, content)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/mx/appender.py", line 88, in append
    appender.append(parent, content)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/mx/appender.py", line 229, in append
    Appender.append(self, child, cont)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/mx/appender.py", line 168, in append
    self.marshaller.append(parent, content)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/mx/core.py", line 71, in append
    if self.start(content):
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/suds/mx/literal.py", line 86, in start
    raise TypeNotFound(content.tag)
suds.TypeNotFound: Type not found: 'type'

5、我初步理解是因为字典内有嵌套字典,不知道理解的对不对,如果把"returnOrgType": [{"type": "person", "type": "dept"}]这段去掉程序是可以运行的,然而接口文档也说明是必须要用这样的格式来获取相关的字段,请问这个问题该如何解决呢 ?

阅读 3.3k
1 个回答

不写了是 json 么。

json.dumps([{'type': 'a'}, {'type': 'b'}])
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题