我在写入 csv 文件时遇到编码问题和 Ensure_ascii=False 问题

问题描述 投票:0回答:1

我有字典列表,我从 json 文件加载了这些字典。我用我的代码存储了这些 json 文件,如下

import json
data = {Some Json}
with open('test.json','w',encoding='ISO-8859-1') as file:
   json.dump(data,file,indent=4,ensure_ascii=False)

当我使用

ensure_ascii
时,它可以正确存储。我有德语字符,只能使用
ISO-8859-1
存储。
utf-8
或任何东西无法正常工作。 这是一些角色

Größe
ä

但是当我尝试将字典列表存储到 csv 文件中时,问题出现了,这不起作用。 当我尝试从中保存 csv 文件时,我无法

ensure_ascii=False
在那里,因为它仅与
json.dump()
一起使用 所以我在 csv 中无法正确获取字符。我在 csv 中得到的是替换字符
�� 
这是我尝试存储 csv 文件的内容

csv_file = "data.csv"
with open(csv_file, mode="w", newline="",encoding='ISO-8859-1',errors='replace') as file:
     writer = csv.DictWriter(file, fieldnames=mainList[0].keys())
     writer.writeheader()
     for row in mainList:
         writer.writerow(row)

所以我应该得到单词 Größe,但我在 csv 文件中得到 Gr��e。 我尝试在谷歌等上搜索,但没有得到任何解决方案。

如果您能提供帮助,我将不胜感激。 预先感谢您。

python csv encoding non-ascii-characters iso-8859-1
1个回答
0
投票

这个脚本将json特殊字符保存在我身边:

import json

jsonfile = {"Größe": "ä"}

with open('test.json','w',encoding='utf8') as file:
   json.dump(jsonfile,file,indent=4,ensure_ascii=False)
© www.soinside.com 2019 - 2024. All rights reserved.