Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中将zip列表保存为csv_Python_Csv_Export_Export To Csv_Zipfile - Fatal编程技术网

在Python中将zip列表保存为csv

在Python中将zip列表保存为csv,python,csv,export,export-to-csv,zipfile,Python,Csv,Export,Export To Csv,Zipfile,如何在python中将下面的zip列表写入csv文件 [{'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} 我有一个错误: _csv

如何在python中将下面的zip列表写入csv文件

[{'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}
我有一个错误:

_csv.Error: sequence expected
我的代码在这里:

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)

由于我发现csv.DictWriter的功能不透明,我建议您执行以下操作:

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]

writer.writerows需要一系列值,以便将单行写入CSV文件

使用原始代码:

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

为此,您可以切换到使用Python的
DictWriter
。您可以传递列标题列表,这可以确保输出中列的顺序符合您的要求。只有此列表中的列会写入输出文件:

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)
这将产生以下输出:

日期,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
字典不是序列。使用。或者写
dict.values()
代码示例的最后一行只是一个技巧,因此您可以将其写在一行中。不要忘记,《PEP8代码样式指南》并不推荐这样做。谢谢。但结果,我的csv中只有“日期”和“v”。但是,我想将这些数值带到我的csv文件中。你能帮我吗@GerhardHagerer[{'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}抱歉,我更正了代码示例。我测试了它,它在我的Python3外壳中运行良好谢谢你的帮助!@GerhardHagererThank you!!@MartinEvans