【发布时间】:2019-01-13 13:23:46
【问题描述】:
我有以下代码:
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**
我想知道这段代码有什么作用?这个逻辑正在另一个开发人员的另一个项目上实现,我根本无法理解。
我该如何解决这个问题?我需要一个字符串,之后我将对其进行操作。
【问题讨论】:
-
请适当标记,我假设这是python 2.x?顺便说一句,规范化所做的是将可以由多个字节模式表示的字符转换为标准字节表示,例如西班牙语的变形 ñ 可以是 U+00F1 或正则 n 后跟 U+0303。规范化将后者的所有实例转换为前者。
-
这是在带有 python 2.7 的 Jenkins Slave 上运行的。
-
但是,现在我的脚本已经启动并运行了。也谢谢你的解释,对我很有帮助。
-
不用担心。我为未来的读者添加了 python2.7 标签。很高兴这个解释很有帮助,我曾经花费大量时间来追踪与非规范化 unicode 内容相关的应用程序中的错误。
标签: python python-2.7 ascii typeerror