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

2024-09-30 08:34:25 发布

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

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

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

但我要做的是

^{pr2}$

我只是不知道该怎么办。在


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

所以最终csv会像

cashandequivalents | shortterminvestments | accountsreceivable | netinventory
100027000000         101000000000           46350000000          13860000000
###########          ############           ###########          ...........

writer.writeheader将在循环之外完成,因此我只写值,而不是“标记”)

谢谢


Tags: 文件csv方法jsondatavaluetag逻辑
2条回答

要做到这一点,最简单、最干净的方法就是阅读字典。在

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}

这将迭代原始dictionary"data"键中包含的list,并在迭代过程中创建一个新的{}值,该值是每个元素的value。在

天真的解决方案:

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)

输出

^{pr2}$

相关问题 更多 >

    热门问题