有哪些库/调用可以处理包含分号的查询字符串,而不是parse_qs?在
>>> urlparse.parse_qs("tagged=python;ruby")
>>> {'tagged': ['python']}
我正在使用stackexchangeapi来搜索带标签的问题。在
Search的布局如下,标记之间用分号分隔:
与API交互很好。当我想测试调用时,特别是使用httpretty模拟HTTP时,问题就出现了。在
在幕后,httpretty
正在使用python标准库中的urlparse.parse_qs
来解析查询字符串。在
很明显这不太管用。这是一个小例子,下面是httpretty的一个片段(在测试上下文之外)。在
import requests
import httpretty
httpretty.enable()
httpretty.register_uri(httpretty.GET, "https://api.stackexchange.com/2.1/search", body='{"items":[]}')
resp = requests.get("https://api.stackexchange.com/2.1/search", params={"tagged":"python;ruby"})
httpretty_request = httpretty.last_request()
print(httpretty_request.querystring)
httpretty.disable()
httpretty.reset()
我想使用httpretty的机器,但是需要一个parse_qs
的解决方法。我现在可以猴子补丁httpretty,但想看看还能做什么。在
为了解决这个问题,我临时修补了
httpretty.core.unquote_utf8
(技术上是httpretty.compat.unquote_utf8
)。在这假设您不需要任何未引用的内容。另一个选择是在分号到达
parse_qs
之前只保留分号百分比编码。在相关问题 更多 >
编程相关推荐