dict与urlencode之间的相互转换

dict转urlencode

这个比较好弄,因为urllib库提供了支持:

>>> urllib.urlencode({'name': '张三', 'age': 23})
>>> 'age=23&name=%E5%BC%A0%E4%B8%89'

python3里,库显得更规范些:

>>> urllib.parse.urlencode({'name': '张三', 'age': 23})
>>> 'age=23&name=%E5%BC%A0%E4%B8%89'

注意:尽管python3字符串换成unicode编码了,但是urlencode的结果还是utf8编码的。

urlencode转dict

很遗憾没有一个叫urldecode的函数来完成这个逆过程,python2里,居然是在另一个库的另一个函数里实现了:

>>> import urlparse

>>> urlparse.parse_qs('age=23&name=%E5%BC%A0%E4%B8%89')
>>> {'age': ['23'], 'name': ['\xe5\xbc\xa0\xe4\xb8\x89']}

>>> urlparse.parse_qsl('age=23&name=%E5%BC%A0%E4%B8%89')
>>> [('age', '23'), ('name', '\xe5\xbc\xa0\xe4\xb8\x89')]

python3则显得统一得多:

>>> urllib.parse.parse_qs('age=23&name=%E5%BC%A0%E4%B8%89')
>>> {'age': ['23'], 'name': ['张三']}

>>> urllib.parse.parse_qsl('age=23&name=%E5%BC%A0%E4%B8%89')
>>> [('age', '23'), ('name', '张三')]

 

发表于 2018年09月05日 00:42   评论:0   阅读:5513  



回到顶部

首页 | 关于我 | 关于本站 | 站内留言 | rss
python logo   django logo   tornado logo