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 对象的字符串组件。