带有重复字段的Python字典 [英] A Python dictionary with repeated fields

查看:80
本文介绍了带有重复字段的Python字典的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在用Python构造一个字典,以与SOAP API一起使用。

I'm constructing a dictionary with Python to use with a SOAP API.

我的SOAP API接受这样的输入:

My SOAP API takes an input like this:

<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

注意该字段如何多次出现。

Notice how the field appears multiple times.

如何使用此数据创建Python字典?

How can I create a Python dict with this data?

如果我这样做:

data = {
  'dataArray':{
    'AccountingYearData':{
      'Handle':{'Year':'2017'}, 
      'Year':'2017',
      'FromDate':'2017-01-01', 
      'ToDate':'2017-12-31', 
      'IsClosed':'False'
    },
    'AccountingYearData':{
      'Handle':{'Year':'2017'}, 
      'Year':'2017',
      'FromDate':'2017-01-01', 
      'ToDate':'2017-12-31', 
      'IsClosed':'False'
    }
  }
}

我得到:

>>> type (data)
<type 'dict'>
>>> data {
  'dataArray': {
    'AccountingYearData': {
      'IsClosed': 'False', 
      'FromDate': '2017-01-01', 
      'Handle': {'Year': '2017'}, 
      'ToDate': '2017-12-31', 
      'Year': '2017'
    }
  }
}

这是我想的,但现在我需要的是。

It's as expected I think, but now what I need.

推荐答案

好吧,答案似乎很明显,甚至以 dataArray名称来暗示:如果您有项目列表,则您要使用列表来存储它们:

Well, the answer seems obvious and is even hinted by the "dataArray" name: if you have a list of items, then you want to use a list to store them:

data = {
    'dataArray':[
        {
            'AccountingYearData':{
                'Handle':{'Year':'2017'}, 
                'Year':'2017',
                'FromDate':'2017-01-01', 
                'ToDate':'2017-12-31', 
                'IsClosed':'False'
                },
            },
        {
            'AccountingYearData':{
                'Handle':{'Year':'2017'}, 
                'Year':'2017',
                'FromDate':'2017-01-01', 
                'ToDate':'2017-12-31', 
                'IsClosed':'False'
                },
            },
        ]
    }

这篇关于带有重复字段的Python字典的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆