北极蟒港口
querystring的Python项目详细描述
此回购协议是node.js querystring module的端口。
它包含两个方法,parse_qs和stringify_obj,它们在功能上等价于 querystring.parse和querystring.stringify节点对应项。它还包含默认值 encode_uri_component和decode_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.
特此免费向任何获得 本软件和相关文档文件的副本 “软件”),无限制地处理软件,包括 但不限于使用、复制、修改、合并、发布, 分发、再授权和/或出售软件副本,并允许 向其提供软件的人员,受 以下条件:
上述版权公告及本许可公告须包括在内 在软件的所有副本或大部分中。
软件按“原样”提供,不作任何形式的保证 或默示的,包括但不限于 适销性、适合特定目的和不侵权。在 作者或版权持有人对任何索赔概不负责, 损害赔偿或其他责任,无论是在合同、侵权行为或 否则,由软件或 在软件中使用或进行其他交易。