如何在python中写入csv?

我有一行:


row = {'A':'valueA', 'B':'valueB', 'C':'valueC'}

基本上我想打开一个新csv文件并在其列中写入每个值,例如


 ---------------------------

|   A     |  B     |   C    |

 ---------------------------

|  ValueA | ValueB | ValueC |

 ---------------------------

我正在这样做:


def OandWtonew(filename, row):

with open('Ouput1.csv', 'wt') as csvfile:

    fileout = csv.writer(csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL)

    fileout.writerow(row)

但我得到的输出是:


 --------------------------------------------

|   A           |  B           |  C          |

 --------------------------------------------

|  'A':'valueA' | 'B':'valueB' | 'C':'valueC'|

 --------------------------------------------


蓝山帝景
浏览 131回答 3
3回答

一只斗牛犬

由于数据是字典,因此csv.DictWriter()可能是最直接的方法。只需确保标头值列表按原始顺序排列即可,在这种情况下,这sorted()可能是最简单的:with open('Ouput1.csv', 'wt') as csvfile:    fieldnames = sorted(row.keys())  # needs to be the first line in correct order    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)    writer.writeheader()    writer.writerow(row)             # writes corresponding value for key in header

森林海

row是 类型dict。从文档:import csvwith open('names.csv', 'w') as csvfile:    fieldnames = ['first_name', 'last_name']    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)    writer.writeheader()    writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})    writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})    writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python