API只占用我一半的lis

2024-09-24 06:32:02 发布

您现在位置:Python中文网/ 问答频道 /正文

正如这个答案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

Tags: apidatadatetimedatestringyearhandlefromdate