Python:写入csv时忽略字符串中的逗号

时间:2016-10-26 17:11:33

标签: python csv

我有一个Python字典,我正在写一个csv文件。 字典的格式如下:

{'title': u'A Preface to Democratic Theory.', 'year': u'1957'}
{'title': u'Joseph A. Schumpeter, Capitalism, Socialism, Democracy, New  York 1942', 'year': None}

问题是标题中的“逗号”。由于键值中有逗号,因此csv将其拆分为不同的单元格。所以我在第一个单元格中有Joseph A. Schumpeter,在第二个单元格中有资本主义等等。 这是我编写csv文件的代码:

def make_csv(mydict):
    with open('mydata.csv', 'a') as f:
    writer = csv.DictWriter(f,fieldnames=[""], delimiter=',')
    writer.writeheader()

    [f.write('{1},'.format(key, normalize(value))) for key, value in mydict.items()]

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

为什么不指定fieldnames并使用DictWriter' writerow方法。

如果您不需要标题,则可以跳过writeheader

def make_csv(list_of_dicts):
    with open('mydata.csv', 'a') as f:
        writer = csv.DictWriter(f,fieldnames=["title", "year"], delimiter=',')
        writer.writerows(list_of_dicts)

将dicts列表作为参数传递给您的函数,并使用writerows方法一次性写入所有数据。