Python 3.x python3中HTML转义的TypeError
我尝试对字符串进行html转义Python 3.x python3中HTML转义的TypeError,python-3.x,Python 3.x,我尝试对字符串进行html转义 from html import escape project_name_unescaped = Project.get('name').encode('utf-8') project_name = escape(project_name_unescaped) 我得到以下错误 Traceback (most recent call last): File "hosts.py", line 70, in <module> project_
from html import escape
project_name_unescaped = Project.get('name').encode('utf-8')
project_name = escape(project_name_unescaped)
我得到以下错误
Traceback (most recent call last):
File "hosts.py", line 70, in <module>
project_name = escape(bytes(project_name_unescaped))
File "/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/html/__init__.py", line 19, in escape
s = s.replace("&", "&") # Must be done first!
TypeError: a bytes-like object is required, not 'str'
奇怪的是,我敢肯定这以前是有效的。有什么想法吗?出了什么问题,或者我需要改变什么才能让它再次工作?我以前也试过
from cgi import escape
错误消息有点混乱
html.escape
希望s
是str
,而不是从消息中期望的字节
删除所有编码相关的东西,它就会工作
from html import escape
project_name_unescaped = Project.get('name')
project_name = escape(project_name_unescaped)
谢谢你的帮助。我只是想知道,因为在我必须添加编码之前,如果没有它,它就会失败。也许python2就是这样。是的,Python3改变了字符串表示。但很难说,Python 2的标准库中甚至没有html
模块。我以前使用过cgi模块,最近在Python 3出现问题后才切换到html。
from html import escape
project_name_unescaped = Project.get('name')
project_name = escape(project_name_unescaped)