将json转换为csv。 (有点单调乏味)

时间:2016-10-25 12:58:48

标签: python json excel csv

所以我试过这个脚本有点让我变得更加努力,我想写更简化的资助细节,比如每年一行(或任何其他好的方式来呈现)

$distance = collect(["distance" => "14.0 km"]);

$zipped = $distance->zip($stores);

$zipped->all();

这给了我一个excel列,用于资助细节,如

import csv

import json
json_data = [{"Founded": "2004", "Company": "InsideSales.com","Funding": "$201.2M", "Funding Details": [[" 2015", "$60.65M "], [" 2014", "$100M "], [" 2013", "$36.55M "], [" 2012", "$4M "]]}]

f = csv.writer(open("CRUNCHBASEDATA.csv", "wb+"))

f.writerow(['Founded','Company','Funding','Funding Details'])

for obj in indata:
    f.writerow([obj['Founded'],obj['Company'],obj['Funding'],obj['Funding Details']])

这种格式很难理解,有人可以建议更好的方式来表示这条信息吗?

1 个答案:

答案 0 :(得分:1)

未经测试,但重新排列数据。像

这样的东西
funding_details = json_data[0]["Funding Details"]
...
f.writerow( ... 'Funding', 'Funding_2014', 'Funding_2013', ... )
f.writerow( ... obj['Funding'], funding_details[0][1], funding_details[1][1], ... )

如果资助年份并非总是2014年,2013年,2012年,那么您可能需要构建一个dict,其中感兴趣的年份条目设置为空白,然后覆盖存在的那些:

funding = { u' 2014':'', u' 2013':'', u' 2012':'', u' 2011':'' }

for elem in funding_details:
   funding[ elem[0] ] = elem[1]

然后传递给writerow的数据将包含funding[ u' 2014']等,如果它不存在于JSON funding_details列表中,它仍然是空白的。

您可能还想调查csv.dictwriter