gpt4 book ai didi

python - 删除 csv 文件中的非 ascii 字符

转载 作者:太空狗 更新时间:2023-10-30 01:51:31 27 4
gpt4 key购买 nike

我目前正在使用 csv 文件在我的 Django 模型中插入数据。下面是一个正在使用的简单保存功能:

def save(self):
myfile = file.csv
data = csv.reader(myfile, delimiter=',', quotechar='"')
i=0
for row in data:
if i == 0:
i = i + 1
continue #skipping the header row

b=MyModel()
b.create_from_csv_row(row) # calls a method to save in models

该函数可完美处理 ascii 字符。但是,如果 csv 文件包含一些非 ascii 字符,则会引发错误:UnicodeDecodeError“ascii”编解码器无法解码位置 1526 中的字节 0x93:序号不在范围内 (128)

我的问题是:如何在保存我的 csv 文件之前删除非 ascii 字符以避免此错误。

提前致谢。

最佳答案

如果你真的想剥离它,试试:

import unicodedata

unicodedata.normalize('NFKD', title).encode('ascii','ignore')

* 警告这将修改您的数据 *它试图找到一个接近的匹配 - 即 ć -> c

也许更好的答案是使用 unicodecsv相反。

----- 编辑 -----好的,如果您根本不关心数据是否被表示,请尝试以下操作:

# If row references a unicode string
b.create_from_csv_row(row.encode('ascii', 'ignore'))

如果 row 是一个集合,而不是一个 unicode 字符串,您需要将集合迭代到字符串级别以重新序列化它。

关于python - 删除 csv 文件中的非 ascii 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18522127/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com