HTML unescape 不是转义特殊字符
HTML Unescape is not unescaping special characters
我的程序没有对引号的 HTML 特殊字符进行转义,我不明白为什么。它仍然在终端中显示特殊字符。
例如:'In the comic book "Archie"
import requests
import html
API_URL = "https://opentdb.com/api.php"
parameters = {
"amount": 10,
"type": "boolean"
}
response = requests.get(API_URL, params=parameters)
data = html.unescape(response.json())
unescaped_data = data["results"]
print(f"UNESCAPED DATA: {unescaped_data}") # THIS IS NOT WORKING
当我将 response.json()
更改为 response.text
时,它起作用了
data = html.unescape(response.text)
结果不是未转义的,因为 response.json()
returns 是 JSON 对象(即 dict
)而不是字符串。如果你愿意,你可以使用 html.unescape(response.text)
取消对响应字符串的转义,但这会使你得到无效的 JSON,例如:"question":""Windows NT" is a monolithic kernel.",
(注意额外的引号)。所以转义是有原因的,你将不得不只转义那些你真正需要的部分,即你的 JSON 对象的字符串组件。
我的程序没有对引号的 HTML 特殊字符进行转义,我不明白为什么。它仍然在终端中显示特殊字符。
例如:'In the comic book "Archie"
import requests
import html
API_URL = "https://opentdb.com/api.php"
parameters = {
"amount": 10,
"type": "boolean"
}
response = requests.get(API_URL, params=parameters)
data = html.unescape(response.json())
unescaped_data = data["results"]
print(f"UNESCAPED DATA: {unescaped_data}") # THIS IS NOT WORKING
当我将 response.json()
更改为 response.text
时,它起作用了
data = html.unescape(response.text)
结果不是未转义的,因为 response.json()
returns 是 JSON 对象(即 dict
)而不是字符串。如果你愿意,你可以使用 html.unescape(response.text)
取消对响应字符串的转义,但这会使你得到无效的 JSON,例如:"question":""Windows NT" is a monolithic kernel.",
(注意额外的引号)。所以转义是有原因的,你将不得不只转义那些你真正需要的部分,即你的 JSON 对象的字符串组件。