gpt4 book ai didi

python - 从 soap envelope zeep 获取数据

转载 作者:太空狗 更新时间:2023-10-30 02:27:37 32 4
gpt4 key购买 nike

我正尝试在 python 库的帮助下使用 wsdl zeep .它工作正常,但我无法找到如何从请求中获取数据。

我的代码:

# encoding=utf-8
from requests.auth import HTTPBasicAuth # or HTTPDigestAuth, or OAuth1, etc.
from zeep import Client
from zeep import helpers
from zeep.transports import Transport
import logging.config

logging.config.dictConfig({
'version': 1,
'formatters': {
'verbose': {
'format': '%(name)s: %(message)s'
}
},
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'verbose',
},
},
'loggers': {
'zeep.transports': {
'level': 'DEBUG',
'propagate': True,
'handlers': ['console'],
},
}
})
wsdl = 'wsdl_url'
user = 'login'
password = 'password'
my_transport = Transport(http_auth=HTTPBasicAuth(user, password))
client = Client(
wsdl, transport=my_transport
)
result = client.service.FunctionName(...)
print result

结果,我得到了这个:

{
'schema': <Schema(location=None)>,
'_value_1': <Element {urn:schemas-microsoft-com:xml-diffgram- v1}diffgram at 0x104ec0098>
}

显然,这不是我想要的。感谢日志记录,我可以看到,实际上我通过信封获得了所需的信息:

Each row has all inforamtion that I need

我的问题是,如何访问信封内的数据(我需要 rowOrders,它部分显示在屏幕上)

最佳答案

使用 Zeep 2.4.0 版,我能够通过将 raw_response 选项传递给客户端来获得原始响应。这告诉客户端返回 Requests 响应对象。

示例代码如下:

from zeep import Client

wsdl = 'wsdl_url'

client = Client(wsdl)

with client.options(raw_response=True):
soap_result = client.service.function_name(...)

# Print out text from Requests response object returned
print soap_result.text

关于python - 从 soap envelope zeep 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40367295/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com