Reputation: 343
So I have tried this script which kinda makes my way more hard, I want to write Funding details more simplified, like one single row for each year(or any other good way to present it)
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']])
This give me an excel column for Funding details like
[[u' 2015', u'$60.65M '], [u' 2014', u'$100M '], [u' 2013', u'$36.55M '], [u' 2012', u'$4M ']]
This format is hard to understand, can anyone please suggest a better way to represent this piece of information?
Upvotes: 0
Views: 47
Reputation: 8222
Untested, but rearrange your data. Something like
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], ... )
If the funding years are not always 2014, 2013, 2012 in that order you may need to build a dict with entries for the years of interest set to blank, then overwrite the ones that are present:
funding = { u' 2014':'', u' 2013':'', u' 2012':'', u' 2011':'' }
for elem in funding_details:
funding[ elem[0] ] = elem[1]
and then the data you pass to writerow will include funding[ u' 2014']
etc. which will still be blank if it did not exist in the JSON funding_details list.
You might also want to investigate csv.dictwriter
Upvotes: 1