如何在python中将html特殊字符转换成不同的格式?

2024-04-23 07:13:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从一个API检索querystring,但是我需要另一个不同API的格式。如何使用python3转换querystring1,使其采用querystring2中给出的格式? querystring1和querystring2是什么字符格式?它们都应解码为“q=分数:>=100'.

querystring1 = 'q=score%3A%26amp%3Bgt%3B%3D100'

querystring2 = 'q=score%3A%3E%3D100'

Tags: gtapi格式解码字符分数python3querystring
1条回答
网友
1楼 · 发布于 2024-04-23 07:13:52

第二个是简单编码的querystring,可以用urllib.parse.unquote解析:

from urllib import parse
parse.unquote('q=score%3A%3E%3D100')

第一个更复杂,因为它是一个(错误地)包含双重编码HTML实体的查询字符串。您需要使用html.unescape来翻译它们:

import html
html.unescape(parse.unquote('q=score%3A%26amp%3Bgt%3B%3D100'))

要将版本1转换为版本2,可以解析然后重新编码。注意,需要通过html.escape两次;第一个将把>翻译成>,第二个将把它翻译成>(老实说,您真的应该考虑修复任何API所期望的格式,它已经完全崩溃了。)

data = parse.unquote('q=score%3A%3E%3D100')
parse.quote(html.escape(data))

相关问题 更多 >