Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x python3中HTML转义的TypeError_Python 3.x - Fatal编程技术网

Python 3.x python3中HTML转义的TypeError

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_

我尝试对字符串进行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_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("&", "&amp;") # 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)