我有以下代码:
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/