Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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列表转换为CSV列_Python_Csv - Fatal编程技术网

将多个Python列表转换为CSV列

将多个Python列表转换为CSV列,python,csv,Python,Csv,我的目标是将一系列列表写入csv,其中每个列表都是一列 这是我目前的代码: rows = list(zip(columns['phase'],columns['start_date'])) with open('date_update.csv','w') as f: writer = csv.writer(f) for row in rows: writer.writerows(row); 。两个列表的长度相同。当我打印行时,它的开头有一个额外的“”),“。但

我的目标是将一系列列表写入csv,其中每个列表都是一列

这是我目前的代码:

rows = list(zip(columns['phase'],columns['start_date']))

with open('date_update.csv','w') as f:
    writer = csv.writer(f)
    for row in rows:
        writer.writerows(row);
。两个列表的长度相同。当我打印行时,它的开头有一个额外的“”),“。但当您打印这两个列表时(列['phase']和列['start\u date'])不会出现这种情况


拉链有什么问题吗?还是我没有正确地将其写入csv文件?

您可以使用
pd.DataFrame
将其保存到csv文件中。例如:

import pandas as pd
columns = {}

columns['phase'] = ['Phase 1','Phase 2', 'Phase 3','Phase 4']
columns['start_date'] = ['August 24 September','August 24 September',
                         'August 24 September', 'August 24 September']

data = list(zip(columns['phase'],columns['start_date']))

df = pd.DataFrame(data = data)

df.to_csv('date_update.csv', index=False, header=False)
将在文件“date_update.csv”中保存以下数据:

第一阶段,8月24日至9月24日
第二阶段,8月24日至9月24日
第三阶段,8月24日至9月24日
第四阶段,8月24日至9月24日

for row in rows:
    writer.writerow(row)
或:

注意单数和复数形式的使用
writerows
需要一系列序列。字符串是一个序列,因此通过传递字符串列表,可以将字符串用作列序列,并在单独的列中列出每个字符

另外,根据,使用以下任一项打开传递给
csv.writer
的文件:

with open('date_update.csv','wb') as f:           # Python 2
with open('date_update.csv','w',newline='') as f: # Python 3
完整示例:

#!python3
import csv

columns = {}
columns['phase']      = ['Phase 1','Phase 2', 'Phase 3','Phase 4']
columns['start_date'] = ['Aug 24, 2018','Sep 25, 2018','Jan 01, 2019','Feb 15, 2019']

rows = zip(columns['phase'],columns['start_date'])

with open('date_update.csv','w',newline='') as f:
    writer = csv.writer(f)
    writer.writerows(rows)
输出:

Phase 1,"Aug 24, 2018"
Phase 2,"Sep 25, 2018"
Phase 3,"Jan 01, 2019"
Phase 4,"Feb 15, 2019"

作为@mark tolonen所写内容的附录,您还可以使用内置csv模块中的DictWriter

with open('date_update.csv','a') as f:
    writr = csv.DictWriter(f, fieldnames=["phase","start_date"])
    # writr.write_header() # Use only if file is created by operation or is empty
    writr.writerows([{"phase": c["phase"], "start_date": c["start_date"]} for c in columns])

请不要张贴图片。帮助指南更喜欢文本,因为它是可搜索和可剪切的。
with open('date_update.csv','a') as f:
    writr = csv.DictWriter(f, fieldnames=["phase","start_date"])
    # writr.write_header() # Use only if file is created by operation or is empty
    writr.writerows([{"phase": c["phase"], "start_date": c["start_date"]} for c in columns])