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

Python:在写入csv时忽略字符串中的逗号,python,csv,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将其拆分为不同的单元格。第一个牢房里有约瑟夫·熊彼

我有一个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将其拆分为不同的单元格。第一个牢房里有约瑟夫·熊彼特,第二个牢房里有资本主义,依此类推。 以下是我编写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()]

有人能帮忙吗?

为什么不指定
字段名
并使用
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)

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

为什么要忽略writer对象?如果您正确使用
writer.writerow()
将引用带逗号的值。为什么设置
fieldnames=[“”]
writer=csv.DictWriter(f,fieldnames=['title','year'])
,然后
writer.writerow(mydict)
。不要每次都重新打开文件也会有帮助;打开文件一次,创建一次
DictWriter
,然后继续使用它写出
dict
行。@Martijin:我在“附加”模式下写作,因为标题被附加到每一行。这就是为什么现在我把它留空了,只需删除
writer.writeheader()
调用即可。