How I can write below zip list to csv file in python?
[{'date': '2015/01/01 00:00', 'v': 96.5},
{'date': '2015/01/01 00:01', 'v': 97.0},
{'date': '2015/01/01 00:02', 'v': 93.75},
{'date': '2015/01/01 00:03', 'v': 96.0},
{'date': '2015/01/01 00:04', 'v': 94.5}
I have this error:
_csv.Error: sequence expected
My code is here:
import csv
res = zip_list
csvfile = "/home/stm/PycharmProjects/isbak_trafik/example.csv"
with open(csvfile, "w") as output:
writer = csv.writer(output, lineterminator='\n')
writer.writerows(res)
You can switch to using Python's DictWriter
for this. You can pass a list of column headers, this ensures that the order of the columns in the output is what you require. Only columns in this list are written to the your output file:
import csv
zip_list = [
{'date': '2015/01/01 00:00', 'v': 96.5},
{'date': '2015/01/01 00:01', 'v': 97.0},
{'date': '2015/01/01 00:02', 'v': 93.75},
{'date': '2015/01/01 00:03', 'v': 96.0},
{'date': '2015/01/01 00:04', 'v': 94.5}]
csvfile = "/home/stm/PycharmProjects/isbak_trafik/example.csv"
with open(csvfile, "wb") as output:
writer = csv.DictWriter(output, fieldnames=['date', 'v'])
writer.writeheader()
writer.writerows(zip_list)
This would produce the following output:
date,v
2015/01/01 00:00,96.5
2015/01/01 00:01,97.0
2015/01/01 00:02,93.75
2015/01/01 00:03,96.0
2015/01/01 00:04,94.5
Since I find csv.DictWriter not transparent in what its doing, I would recommend doing the following:
with open(csvfile, "w") as output:
output.write(';'.join(list(res[0].keys()))+"\n")
[output.write(';'.join(list(map(str, r.values())))+"\n") for r in res]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With