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

man*_*exx 5 python csv localization

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

writer = csv.writer(response, delimiter=';', quoting=csv.QUOTE_ALL)
Run Code Online (Sandbox Code Playgroud)

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

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

sko*_*kin 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))
Run Code Online (Sandbox Code Playgroud)

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