我需要这样发送请求:<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]}
}
}
}
)
添加回答
举报
0/150
提交
取消