2016-10-25 9 views
0

私はこのようなスクリプトを試してみましたが、私のやり方をもっと難しくしています。毎年1つの行(または他の良い方法で提示してください)のように、資金調達の詳細を簡略化して書いています。jsonをcsvに変換する。

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']]) 

これは私にこのフォーマットを理解するのは難しいです

[[u' 2015', u'$60.65M '], [u' 2014', u'$100M '], [u' 2013', u'$36.55M '], [u' 2012', u'$4M ']] 

などの資金調達詳細については、Excelの列を与え、誰もが情報のこの作品を表現するためのより良い方法を提案してくださいすることができますか?

答えて

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年ではない場合:

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

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

、その後、あなたがのwriterowに渡すデータは、JSONのfunding_detailsリストに存在していなかった場合は空白のままになります funding[ u' 2014']などが含まれます。

また、私が望んでいたまさに感謝をcsv.dictwriter

+0

を調査することをお勧めします。 – Zaibi

関連する問題