我有以下代码:

import unicodedata
my_var = "this is a string"
my_var2 = " Esta es una oración que está en español "
my_var3 = unicodedata.normalize('NFKD', my_var2).encode('ascii', 'ignore')
output = my_var + my_var3
print(output)

python结束时出现以下错误。
**File "C:/path/to/my/file/testing_file.py", line 5, in <module>
    output = my_var + my_var3
TypeError: Can't convert 'bytes' object to str implicitly
Process finished with exit code 1**

我想知道这段代码是做什么的?这个逻辑正在另一个开发人员的另一个项目上实现,我完全不理解。

我怎么解决这个问题?我需要一个字符串,之后将对其进行操作。

最佳答案

您需要指定编码类型。

然后,您需要使用unicode而不是string作为normalize()的参数

# -*- coding: utf-8 -*-

import unicodedata
my_var = u"this is a string"
my_var2 = u" Esta es una oración que está en español "
my_var3 = unicodedata.normalize(u'NFKD', my_var2).encode('ascii', 'ignore').decode('utf8')
output = my_var + my_var3
print(output)

关于python - unicodedata.normalize在python中做什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51710082/

10-12 17:48