正如这个答案A Python dictionary with repeated fields中建议的那样,我试图用python和zeep模块将dict列表发送给API。在
但是,API只接收我一半的数据。在
API需要dict,并采用如下参数dataArray:
<dataArray>
<AccountingYearData>
<Handle>
<Year>string</Year>
</Handle>
<Year>string</Year>
<FromDate>dateTime</FromDate>
<ToDate>dateTime</ToDate>
<IsClosed>boolean</IsClosed>
</AccountingYearData>
<AccountingYearData>
<Handle>
<Year>string</Year>
</Handle>
<Year>string</Year>
<FromDate>dateTime</FromDate>
<ToDate>dateTime</ToDate>
<IsClosed>boolean</IsClosed>
</AccountingYearData>
</dataArray>
使用此链接获取完整字符串https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?op=AccountingYear_CreateFromDataArray
所以我喜欢这样:
^{pr2}$但是有了这个API只能得到一半的数据。在
将列表插入dict中,如下所示:
data = {
'dataArray': {
[
{...},
{...}
]
}
}
c.service.AccountingYear_CreateFromDataArray(data)
API不接受。在
有办法摆脱吗?在
谨致问候 克雷斯滕
编辑:
我的完整代码是:
from zeep import Client
import datetime
AppSecretToken = 'xxxx'
AgreementGrantToken = 'xxxx'
c = Client("https://api.e-conomic.com/secure/api1/EconomicWebService.asmx?WSDL")
c.service.ConnectWithToken(token=AgreementGrantToken, appToken=AppSecretToken)
data = [\
{'AccountingYearData': {\
'Handle': {'Year': '2018'},\
'Year': '2018',\
'FromDate': datetime.date(2018,1,1),\
'ToDate': datetime.date(2018,12,31), \
'IsClosed': False }\
}, \
{'AccountingYearData': {\
'Handle': {'Year': '2019'},\
'Year': '2019',\
'FromDate': datetime.date(2019,1,1),\
'ToDate': datetime.date(2019,12,31), \
'IsClosed': False }\
} \
]\
print(c.service.AccountingYear_CreateFromDataArray(dataArray = data))
data = {'dataArray': \
[\
{'AccountingYearData': {\
'Handle': {'Year': '2018'},\
'Year': '2018',\
'FromDate': datetime.date(2018,1,1),\
'ToDate': datetime.date(2018,12,31), \
'IsClosed': False }\
}, \
{'AccountingYearData': {\
'Handle': {'Year': '2019'},\
'Year': '2019',\
'FromDate': datetime.date(2019,1,1),\
'ToDate': datetime.date(2019,12,31), \
'IsClosed': False }\
} \
]\
}
print(c.service.AccountingYear_CreateFromDataArray(data))
回应:
[{
'Year': '2018'
}]
None
目前没有回答
相关问题 更多 >
编程相关推荐