[英]SOAPpy result to JSON
我正在向外部 WDSL 服務發送請求,該服務出於某種原因返回了一個巨大的對象。 我正在使用SOAPpy
連接,我想將結果解析為 JSON。 但是我在對象中得到了很多對象,就像這樣。
<SOAPpy.Types.structType incident at 53129728>:
有什么辦法可以用 SOAPpy 解析這個對象嗎? 是我第一次使用這個 SOAPpy。
如果您使用的是 SOAPpy - 有一種方法可以將 SOAPpy 對象轉換為原生 Python 對象 - 然后將其放入 json.dumps 中而不會出錯。
soappyobject = SOAPProxy.someMethod()
pythonobject = SOAPProxy.Types.simplify(soapyobject)
jsonobject = json.dumps(pythonobject)
...至少 - 到目前為止,它對我放入的每個對象都有效。
不幸的是,它不適用於 SOAPpy.WSDL 可以返回的 WSDL 對象。
我有同樣的問題,我在這里找到了解決方案:
https://github.com/paultag/deapi/blob/master/deapi/emitters.py
基本上,您已經創建了一個 Encoder json 類並轉儲該類以進行編碼。
像這樣:
class DateEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, date):
return str(obj)
if isinstance(obj, structType):
obj = obj._asdict()
return obj
return json.JSONEncoder.default(self, obj)
還有他們:
response = json.dumps(response,sort_keys=True, indent=4, cls=DateEncoder)
這對我有用:
pythonObject = SOAPpy.Types.simplify(soapObject)
jsonObject = json.dumps(pythonObject)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.