如何用逗号作为小数分隔符编写csv?

时间:2016-10-03 14:04:33

标签: python csv localization

我正在尝试在python中创建一个欧洲格式的csv。我已经将分隔符设置为分号

writer = csv.writer(response, delimiter=';', quoting=csv.QUOTE_ALL)

但是,这仍然使用点.作为小数点分隔符。使用逗号的正确方法是什么,这对我的语言环境是否正确? 我似乎无法找到任何方式在文档中设置它。 (我正在使用,并且更愿意坚持使用内置的csv模块)

修改 这被标记为重复,但链接的问题涉及阅读而不是写作。我找不到有关写作的答案。这些主题(略有但重要)不同。

1 个答案:

答案 0 :(得分:5)

有点hacky方式,但它是我能想到的最好的:将浮点数转换为字符串并将.替换为,

def localize_floats(row):
    return [
        str(el).replace('.', ',') if isinstance(el, float) else el 
        for el in row
    ]

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

如果您想要更好的本地化处理,我建议您使用babel.numbers包转换所有数字。