为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 zeep python 中的 SOAP 请求的单个标签下发送多个值

如何在 zeep python 中的 SOAP 请求的单个标签下发送多个值

慕侠2389804 2022-10-11 21:17:23
我需要这样发送请求:<soap:Body>      <ver:Notification>         <!--Optional:-->         <ver:messages>            <!--Zero or more repetitions:-->            <ver:Check>               <ver:ID>324007</ver:ID>               <ver:BranchList>                  <ver:Branch >                     <ver:Area>                        <ver:XAxis>21.23</ver:XAxis>                        <ver:YAxis>-09.11</ver:YAxis>                     </ver:Area>                  </ver:Branch>               </ver:BranchList>            </ver:Check>            <ver:Check>               <ver:ID>002345</ver:ID>               <ver:BranchList>                  <ver:Branch >                     <ver:Area>                        <ver:XAxis>23.334</ver:XAxis>                        <ver:YAxis>-11.23</ver:YAxis>                     </ver:Area>                  </ver:Branch>               </ver:BranchList>            </ver:Check>         </ver:messages>      </ver:Notification>   </soap:Body>我正在使用 python 中的 Zeep 库准备请求。我在“upstream_messages”中从上游获取一些值并对其进行迭代并创建 list_of_messages,如下所示:list_of_messages = []        for i in upstream_messages:            list_of_messages .append(                {'Check': {'ID': i[0],                           'BranchList':                               {'Branch':                                   {                                       'Area': {'XAxis': i[4], 'YAxis': i[5]}                                   }                               }                           }                }            )但是当我使用以下代码检查请求时:request = client.create_message(client.service, 'Notification', messages=list_of_messages )logger.info(etree.tostring(request, pretty_print=True))请建议我做错了什么。我尝试使用messages=[list_of_messages]为 list_of_messages 制作列表列表,但随后我得到没有消息标签的输出
查看完整描述

1 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

您需要将 Checks 用作数组而不是 list_of_messages。请参阅https://github.com/mvantellingen/python-zeep/issues/272

以下代码应该可以工作:

list_of_messages = {'Check': []}

        for i in upstream_messages:

            list_of_messages['Check'].append(

                {'ID': i[0],

                   'BranchList':

                       {'Branch':

                           {

                               'Area': {'XAxis': i[4], 'YAxis': i[5]}

                           }

                       }

                   }


            )


查看完整回答
反对 回复 2022-10-11
  • 1 回答
  • 0 关注
  • 74 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信