【问题标题】:Array of dictionaries giving error in a zeep element structure在 zeep 元素结构中给出错误的字典数组
【发布时间】:2021-10-28 19:09:04
【问题描述】:

我有这个元素,我必须在服务中用作参数:

ns0:tMensajeEjecucionConsulta(CodConsulta: ns0:tCodConsulta, Parametros: {[({Txt: 
{n: ns0:n, v: ns0:v}} | {Num: {n: ns0:n, v: xsd:decimal}} | {Fec: {n: ns0:n, v: 
xsd:date}} | {Ses: {n: ns0:n, v: ns0:v}})]})

我做了一个这样的对象:

data = {
    'CodConsulta': {'v': '5473'},
    'Parametros': [
        {'Txt': {'n': 'Agente', 'v': 'Test'}},
        {'Fec': {'n': 'Fecha', 'v': '2021-10-28'}},            
    ]}

request = client.get_type('ns0:tMensajeEjecucionConsulta')
data = request(**data)
response = client.service.ServicioEjecucionConsultaEncolumnada(data)

Parametros() got an unexpected keyword argument 'Txt'. Signature: `[({Txt: {n: {http://www.omel.es/Schemas}n, v: {http://www.omel.es/Schemas}v}} | {Num: {n: {http://www.omel.es/Schemas}n, v: xsd:decimal}} | {Fec: {n: {http://www.omel.es/Schemas}n, v: xsd:date}} | {Ses: {n: {http://www.omel.es/Schemas}n, v: {http://www.omel.es/Schemas}v}})]

我也试过这样:

request = client.get_type('ns0:tMensajeEjecucionConsulta')
data = request(CodConsulta='5473', Parametros=[
    {'Txt': {'n': 'Agente', 'v': 'Test'}},
    {'Fec': {'n': 'Fecha', 'v': '2021-10-28'}},
])
response = client.service.ServicioEjecucionConsultaEncolumnada(data)

它给了我完全相同的错误。

我无法正确形成对象Parametros。谁能告诉我为什么?

【问题讨论】:

    标签: python python-3.x suds zeep


    【解决方案1】:

    我想通了。这个元素恰好是一个xsd:choice。并且该类型元素的结构与通常的不同。

    处理此类元素的文档可在此处获得: https://docs.python-zeep.org/en/master/datastructures.html#xsd-choice

    最后我的有效对象必须是这样的:

    data = {
        'CodConsulta': {'v': '5473'},
        'Parametros': {'_value_1':
            [
                {'Txt': {'n': 'Agente', 'v': 'Teste'}},
                {'Fec': {'n': 'Fecha', 'v': '2021-10-28'}},
                {'Txt': {'n': 'Sesion', 'v': '0'}}
            ]}}
    

    【讨论】:

      猜你喜欢
      • 2017-06-12
      • 1970-01-01
      • 2016-06-19
      • 2020-02-11
      • 2014-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-02
      相关资源
      最近更新 更多