北极蟒港口

querystring的Python项目详细描述


此回购协议是node.js querystring module的端口。

它包含两个方法,parse_qsstringify_obj,它们在功能上等价于 querystring.parsequerystring.stringify节点对应项。它还包含默认值 encode_uri_componentdecode_uri_component函数,可以方便地使用。

安装

pip install querystring

用法

分析查询字符串

>>> querystring.parse_qs('foo=bar&baz=qux&baz=quux&corge=')
{u'foo': u'bar', u'baz': [u'qux', u'quux'], u'corge': u''}
>>> querystring.parse_qs('foo:bar;baz:qux;baz:quux;corge:', sep=';', eq=':')
{u'foo': u'bar', u'baz': [u'qux', u'quux'], u'corge': u''}
>>> def gbk_decode(s):
...     return urllib.unquote(s)
...
>>> querystring.parse_qs('foo=bar&w=%D6%D0%CE%C4', decode_fn=gbk_decode)
{'foo': 'bar', 'w': '\xd6\xd0\xce\xc4'}  # u'中文'

将对象转换回查询字符串

>>> querystring.stringify_obj({'foo': 'bar', 'baz': ['qux', 'quux'], 'corge': ''})
'foo=bar&baz=qux&baz=quux&corge='
>>> querystring.stringify_obj({'foo': 'bar', 'baz': ['qux', 'quux'], 'corge': ''}, sep=';', eq=':')
'foo:bar;baz:qux;baz:quux;corge:'
>>> def gbk_encode(s):
...     return urllib.quote(unicode(s).encode('gbk'))
...
>>> querystring.stringify_obj({'foo': 'bar', 'w': u'中文'}, encode_fn=gbk_encode)
'foo=bar&w=%D6%D0%CE%C4'

动机

我们正在寻找一个简单的模块,以合理的方式解析查询参数, 对urlparse如何处理参数(将所有值放入列表)感到不满意, 所以我们做了这个。

许可证

版权所有Refinery29,Inc.

特此免费向任何获得 本软件和相关文档文件的副本 “软件”),无限制地处理软件,包括 但不限于使用、复制、修改、合并、发布, 分发、再授权和/或出售软件副本,并允许 向其提供软件的人员,受 以下条件:

上述版权公告及本许可公告须包括在内 在软件的所有副本或大部分中。

软件按“原样”提供,不作任何形式的保证 或默示的,包括但不限于 适销性、适合特定目的和不侵权。在 作者或版权持有人对任何索赔概不负责, 损害赔偿或其他责任,无论是在合同、侵权行为或 否则,由软件或 在软件中使用或进行其他交易。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java结合两个Date实例使用Joda创建datetime   带有POI和FileOutputStream的java Swing应用程序性能问题   Java中是否存在类似于Python的异常?   Java中有界通配符的泛型   使用字符和子字符串的java不同输出   在Java中获取LDAP模式   java自定义类在自身上生成ClassNotFoundException   java连接到从internet到通过LAN连接到internet的系统的serversocket   java如何通过maven在jaxws中使用jaxb插件?   java Kerberos如何获取主体或客户端名称?   java应用服务器中是否有JDBC的单点登录解决方案?   java是存储矩阵值以便以后访问的更好方法   Java等级计算器。开始这门课我需要一些帮助   未找到Android“libc++\u shared.so”中的java OpenCV实现   当我使用web配置部署描述符时使用java。xml。它显示了错误   java为什么我的ArrayList的add方法冲突,如何编辑我的自定义add方法   java创建一个以集合为键的映射?   java如何将用户输入到数字三角形中   为什么Java在读取LinkedHashMap时会自动从字符串转换为整数   类动态创建和读取java类