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)
writer.writerows expects a sequence of values for writing a single row into the CSV file.
Using your original code:
import csv
res =[{'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 = "example.csv"
with open(csvfile, "w") as output:
writer = csv.writer(output, lineterminator='\n')
for line in res:
date = line['date']
value = line['v']
writer.writerow([date, value])
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]
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
来源:https://stackoverflow.com/questions/35265133/saving-zip-list-to-csv-in-python