![](/img/trans.png)
[英]How to access all Webservice methods from a Python Soap Client with multiple bindings using Python zeep
[英]How to fix enum error while using zeep in python to access API
我正在使用 python 3.6 和 zeep 訪問以下api 。
我已經設置了客戶端,可以登錄並開始工作。 但是這個電話不起作用,我不知道為什么。
AEclient = zeep.Client(wsdl=AEwsdl, wsse=UsernameToken(AE_username, AE_password), settings = AEsettings)
data = AEclient.service.GetBinData(sessionID = AESessionID, fromLocal = '2/1/2020', toLocal = '2/5/2020', binSize = 15, Fields = {'DataField': [{'FieldName': 'KWHnet', 'Function': '0', 'HID': '10000'}, {'HID': '10000', 'FieldName': 'KW', 'Function': '0'}]})
“我收到以下錯誤:格式化程序在嘗試反序列化消息時拋出異常:嘗試反序列化參數 alsoenergy_ns:binSize 時出錯。InnerException 消息是‘無效枚舉值‘15’無法反序列化為類型‘AlsoEnergyAPI’ .Data.BinSizes'。如果類型具有 DataContractAttribute 屬性,請確保存在必要的枚舉值並用 EnumMemberAttribute 屬性標記。'。有關更多詳細信息,請參閱 InnerException。
我曾嘗試將 binSize 更改為其他明顯的選項,如 0、60 等。我曾嘗試使用 int(15)、'15'、'Bin15Min' 等,但無濟於事。
有兩個變量似乎被“枚舉”了; 函數和 binSize。 如果我從命令中刪除這些,它似乎使用默認值進行處理。 我似乎無法說明適用於枚舉值的內容?
有什么建議或接下來要嘗試的事情嗎?
我不確定秘密是什么,但是當我最終使用 binSize = 'Bin15Min' 和 'function': 'Avg' 時,它起作用了。 我猜這些整數占位符不起作用,但完整的字符串版本可以。
data = AEclient.service.GetBinData(sessionID = AESessionID, fromLocal = '2/1/2020', toLocal = '2/5/2020', binSize = 'Bin15Min', Fields = {'DataField': [{'FieldName': 'KWHnet', 'Function': 'Avg', 'HID': '10000'}]})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.