如何计算字典集中的字典数

时间:2019-08-08 19:05:38

标签: python python-3.x dictionary

enter image description here我正在尝试将一个非常复杂的JSON转换为CSV,现在我停留在中间的某个位置。我的JSON文件嵌套了许多列表和字典(字典也有子字典)

当我遍历完整的JSON时,我从a获得两个字典进行循环。现在我的问题是,当我遍历此集合时,由于字典的限制,我将键(Zip1)和值(值)附加到默认字典中,该字典在一开始被设置为null,我只能提取一个值,即Zip1、34567

{'type': 'Zip1',  'value': '12345'}
{'type': 'Zip1',  'value': '34567'}
fin_data={}


dict1 is the outcome of some for loop of my code and holds the value as 
{'type': 'Zip1',  'value': '12345'}
{'type': 'Zip1',  'value': '34567'}


for key,value in dict1.items():
    for data in value:
       print(data)
       fin_data.update(key:data['value'])

有什么办法可以遍历dict1的字典集吗? 这样,在第一次迭代时,我会将数据复制到CSV,然后在第二次迭代中,将其他值复制到CSV

我得到的输出是:

{Zip1:34567}

两个值都需要实际输出 我正在使用的json样本需要从所有value属性中提取数据:


{
  "updatedTime": 1562215101843,
  "attributes": {
    "ActiveFlag": [
      {
        "value": "Y"
      }
    ],
    "CountryCode": [
      {
        "value": "United States"
      }
    ],
    "LastName": [
      {
        "value": "Giers"
      }
    ],
    "MatchFirstNames": [
      {
        "value": "Morgan"
      }
    ],
    "Address": [
      {
        "value": {
          "Zip": [
            {
              "value": {
                "Zip5": [
                  {
                    "type": "Zip1",
                    "value": "12345"
                  }
                ]
              }
            }
          ],
          "Country": [
            {
              "value": "United States"
            }
          ]
        }
      },
      {
        "value": {
          "City": [
            {
              "value": "Tempe"
            }
          ],
          "Zip": [
            {
              "value": {
                "Zip5": [
                  {
                    "type": "Zip1",
                    "value": "85287"
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}


Expected Result :

updatedTime, ActiveFlag, CountryCode, LastName, MatchFirstNames, Address_Zip_Zip5, Address_City, Address_Country

1562215101843,Y,United States,Giers,Morgan,12345,,United States
1562215101843,Y,United States,Giers,Morgan,85287,Tempe,

1 个答案:

答案 0 :(得分:0)

第一步,每个人都将所有邮政编码累积在一个行/列表/记录中,并用空格隔开或排列成阵列。

然后将所有内容提取为几行