簡體   English   中英

SOAPpy 結果到 JSON

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM