2024-04-23 07:13:52 发布
网友
我正在从一个API检索querystring,但是我需要另一个不同API的格式。如何使用python3转换querystring1,使其采用querystring2中给出的格式? querystring1和querystring2是什么字符格式?它们都应解码为“q=分数:>=100'.
querystring1 = 'q=score%3A%26amp%3Bgt%3B%3D100' querystring2 = 'q=score%3A%3E%3D100'
第二个是简单编码的querystring,可以用urllib.parse.unquote解析:
urllib.parse.unquote
from urllib import parse parse.unquote('q=score%3A%3E%3D100')
第一个更复杂,因为它是一个(错误地)包含双重编码HTML实体的查询字符串。您需要使用html.unescape来翻译它们:
html.unescape
import html html.unescape(parse.unquote('q=score%3A%26amp%3Bgt%3B%3D100'))
要将版本1转换为版本2,可以解析然后重新编码。注意,需要通过html.escape两次;第一个将把>翻译成>,第二个将把它翻译成>(老实说,您真的应该考虑修复任何API所期望的格式,它已经完全崩溃了。)
html.escape
>
>
>
data = parse.unquote('q=score%3A%3E%3D100') parse.quote(html.escape(data))
第二个是简单编码的querystring,可以用
urllib.parse.unquote
解析:第一个更复杂,因为它是一个(错误地)包含双重编码HTML实体的查询字符串。您需要使用
html.unescape
来翻译它们:要将版本1转换为版本2,可以解析然后重新编码。注意,需要通过
html.escape
两次;第一个将把>
翻译成>
,第二个将把它翻译成>
(老实说,您真的应该考虑修复任何API所期望的格式,它已经完全崩溃了。)相关问题 更多 >
编程相关推荐