python – 对URL参数进行解码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 对URL参数进行解码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1382字,纯文字阅读大概需要2分钟。
内容图文
我正在和一个曾经向我发送HTTP字符串的服务器说话:
/path/to/my/handler/?action-query&id=112&type=vca&info=ch=0&type=event&ev16[sts=begin (...)
所以“info”GET参数包括“=”和“&”字符.这是相当不正统的,但我们为它写了一个解析器.但是,最近他们决定对其中的一部分进行编码,所以现在字符串看起来像这样.
/path/to/my/handler/?action=query&id=112&type=vca&info=ch%3D0%26type%3Devent%26ev46[sts%3Dbegin (...)
这打破了我们的解析器,它需要一个像第一个一样的字符串.
我可以以某种方式“解码”字符串,以便我可以使用旧代码(以便在我们重新编写解析器时它不会被破坏)吗?
根据下面的答案,我们可以使用urllib.unquote()来清理字符串.但是,我们依赖于request.GET,它基于第一个字符串进行设置.是否可以根据新转换的字符串重建GET对象,或以某种方式强制它重新评估?
解决方法:
我怀疑你想要的是来自urllib模块的unquote函数.
>>> s = '/path/to/my/handler/?action=query&id=112&type=vca&info=ch%3D0%26type%3Devent%26ev46[sts%3Dbegin'
>>> import urllib
>>> urllib.unquote(s)
'/path/to/my/handler/?action=query&id=112&type=vca&info=ch=0&type=event&ev46[sts=begin'
编辑:我对Django不太熟悉,但Request and response object section of their docs声明如下:
QueryDict instances are immutable, unless you create a copy() of them. That means you can’t change attributes of request.POST and request.GET directly.
根据我对这些文档的有限读取,您可以将unquote()函数应用于HttpRequest.body属性,并从结果中构建一个新的QueryDict(如果需要,可以使用它来更新当前的一个).
内容总结
以上是互联网集市为您收集整理的python – 对URL参数进行解码全部内容,希望文章能够帮你解决python – 对URL参数进行解码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。