如何读取 csv 文件,然后找出文件中的特定字段是否包含 Python 中的有效 utf-8 字符



>我有一个案例,我应该读取csv文件中的一行,然后尝试找出该行中的第一列是否具有有效的utf-8字符。

以下是我拥有的csv文件中的一个小示例数据:

Pension Roob,"68233 Kertzmann Mountains Apt. 057, Swiftburgh, NY 18633"
ࠀabaa,"AECS layout main road"
Motel One,"23 Parkstad Germany"

我期待第二行给出错误,但它没有发生。

以下是我执行此操作的Python代码:

import csv
def is_valid_utf_8(word):
try:
check = word.encode('utf-8')
print(check)
except UnicodeEncodeError:
return False
return True

with open('test.csv') as csvfile:
rows = csv.reader(csvfile, delimiter=",")
for row in rows:
if len(row) == 0:
continue
else:
if not is_valid_utf_8(row[0]):
print(f"{row} has something wrong")

我检查非 UTF-8 字符的方法是否正确?

还是我使用的数据样本是错误的。

有人可以投掷一些光芒吗?

提前非常感谢

建议:

如果要检查字符串是否可转换,则应使用ascii,而不是utf-8。修复了is_valid_utf_8方法,即is_valid_ascii.

这样,您将获得令人垂涎的错误,并检查您想要的内容。

def is_valid_ascii(word):
try:
print(word)
check = word.encode('ascii')
except UnicodeEncodeError:
return False
return True

相关内容

  • 没有找到相关文章

最新更新