Python将多个JSON对象解析为一个对象

Python将多个JSON对象解析为一个对象,python,json,csv,Python,Json,Csv,我现在有一个json文件,看起来像这样 { "data": [ { "tag": "cashandequivalents", "value": 10027000000.0 }, { "tag": "shortterminvestments", "value": 101000000.0 }, { "tag": "accountsreceivable",

我现在有一个json文件,看起来像这样

{
    "data": [
    {
        "tag": "cashandequivalents",
        "value": 10027000000.0
    },
    { 
        "tag": "shortterminvestments",
        "value": 101000000.0
    },
    {
        "tag": "accountsreceivable",
        "value": 4635000000.0
    },
    {
        "tag": "netinventory",
        "value": 1386000000.0
    }...
但我想说的是

{ 
    "cashandequivalents": 10027000000.0, 
    "shortterminvestments":101000000.0 , 
    "accountsreceivable":4635000000.0,  
    "netinventory":1386000000.0
}
我只是不知道该怎么办


也许有一种更简单的方法,但对我来说这似乎是最符合逻辑的,因为下一步是
writer.writerow
到csv

因此,最终csv将看起来像

cashandequivalents | shortterminvestments | accountsreceivable | netinventory
100027000000         101000000000           46350000000          13860000000
###########          ############           ###########          ...........
writer.writeheader
将在循环之外完成,因此我只编写值,而不是“标记”)

感谢一个天真的解决方案:

import json

json_data = {
    "data": [
        {
            "tag": "cashandequivalents",
            "value": 10027000000.0
        },
        {
            "tag": "shortterminvestments",
            "value": 101000000.0
        },
        {
            "tag": "accountsreceivable",
            "value": 4635000000.0
        },
        {
            "tag": "netinventory",
            "value": 1386000000.0
        }
    ]
}

result = dict()
for entry in json_data['data']:
    result[entry['tag']] = entry['value']

print json.dumps(result, indent=4)
输出

{
    "shortterminvestments": 101000000.0, 
    "netinventory": 1386000000.0, 
    "accountsreceivable": 4635000000.0, 
    "cashandequivalents": 10027000000.0
}

做到这一点最简单、最干净的方法是阅读词典

d = {
 "data": [
  {
  "tag": "cashandequivalents",
  "value": 10027000000.0
  },
  { 
  "tag": "shortterminvestments",
  "value": 101000000.0
  },
  {
  "tag": "accountsreceivable",
  "value": 4635000000.0
   },
   {
   "tag": "netinventory",
   "value": 1386000000.0
   }
 ]
}
newDict = {i['tag']: i['value'] for i in d['data']}

# {'netinventory': 1386000000.0, 'shortterminvestments': 101000000.0, 'accountsreceivable': 4635000000.0, 'cashandequivalents': 10027000000.0}


这将遍历包含在原始
字典
“data”
键中的
列表
,并创建一个新的列表,其中键为每个的
标记
值,值为迭代期间每个的
值。

组合={item['tag']:item['value']对于['data']}
中的项,其中
a
是您的初始结构。那是一本字典。