Writing out a csv file from list of dictionary in python -


i'm pretty new python , i'm struggling save list of dictionary in csv file.

i want write out list in csv file ,using pipe character delimiter

my list :

[{'coast': {'max_load': 18779, 'month': 8, 'day': 13, 'hour': 17, 'year': 2013}},   {'east': {'max_load': 2380, 'month': 8, 'day': 5, 'hour': 17, 'year': 2013}},   {'far_west': {'max_load': 2281, 'month': 6, 'day': 26, 'hour': 17, 'year': 2013}},   {'north': {'max_load': 1544, 'month': 8, 'day': 7, 'hour': 17, 'year': 2013}},   {'north_c': {'max_load': 24415, 'month': 8, 'day': 7, 'hour': 18, 'year': 2013}},   {'southern': {'max_load': 5494.157645, 'month': 8, 'day': 8, 'hour': 16, 'year': 2013}},   {'south_c': {'max_load': 11433, 'month': 8, 'day': 8, 'hour': 18, 'year': 2013}},   {'west': {'max_load': 1862, 'month': 8, 'day': 7, 'hour': 17, 'year': 2013}},   {'ercot': {'max_load': 67595, 'month': 8, 'day': 7, 'hour': 17, 'year': 2013}}] 

and final csv should this:

station|year|month|day|hour|max load

coast|2013|01|01|10|12345

east|2013|01|01|10|12345

far_west|2013|01|01|10|12345

north|2013|01|01|10|12345 north_c|2013|01|01|10|12345

southern|2013|01|01|10|12345

south_c|2013|01|01|10|12345

west|2013|01|01|10|12345

i trying write function save_file save list in csv file above stuck @ how keys of dictionary , write them in both row ('coast') , column ('year', 'month', 'date', 'hour', 'max load').

def save_file(data, filename): in range(len(data)):     k,v in data[i].items():         print k         k1,v1 in v.items():             print k1,v1   open(filename,'wb') f:     fieldnames = ["station","year", "month", "date", "hour", "max load"]     wr = csv.writer(f, delimiter="|", fieldnames = fieldnames)     wr.writeheader() 

any appreciated.

you can use csv.dictwriter writing dictionary in csv file :

list_of_dict=[{'coast': {'max_load': 18779, 'month': 8, 'day': 13, 'hour': 17, 'year': 2013}},   {'east': {'max_load': 2380, 'month': 8, 'day': 5, 'hour': 17, 'year': 2013}},   {'far_west': {'max_load': 2281, 'month': 6, 'day': 26, 'hour': 17, 'year': 2013}},   {'north': {'max_load': 1544, 'month': 8, 'day': 7, 'hour': 17, 'year': 2013}},   {'north_c': {'max_load': 24415, 'month': 8, 'day': 7, 'hour': 18, 'year': 2013}},   {'southern': {'max_load': 5494.157645, 'month': 8, 'day': 8, 'hour': 16, 'year': 2013}},   {'south_c': {'max_load': 11433, 'month': 8, 'day': 8, 'hour': 18, 'year': 2013}},   {'west': {'max_load': 1862, 'month': 8, 'day': 7, 'hour': 17, 'year': 2013}},   {'ercot': {'max_load': 67595, 'month': 8, 'day': 7, 'hour': 17, 'year': 2013}}]  import csv  open('names.csv', 'w') csvfile:     fieldnames = ('station','year', 'month', 'day', 'hour', 'max_load')     writer = csv.dictwriter(csvfile, fieldnames=fieldnames,delimiter='|')     writer.writeheader()     d in list_of_dict:           k,v=d.items()[0]           v['station']=k           writer.writerow(v) 

Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -