这个包提供了一个QueryList类,它具有Django ORM风格的过滤、排除和获取列表。它还提供betterdict,一个点查找/分配功能的dicts包装,100%向后兼容。

querylist的Python项目详细描述


#查询列表

[![生成状态](https://img.shields.io/travis/thomasw/querylist.svg)(https://travis ci.org/thomasw/querylist)
[![覆盖状态](https://img.shields.io/covertalls/thomasw/querylist.svg)(https://covertalls.io/r/thomasw/querylist)
[![最新版本](https://img.shields.io/pypi/v/querylist.svg)(https://pypi.python.org/pypi/querylist/)
[![下载](https://img.shields.io/pypi/dm/querylist.svg)(https://pypi.python.org/pypi/querylist/)


querylist在这里提供帮助。

这个包提供了一个名为querylist的数据结构,它是python内置列表数据类型的扩展,添加了django orm eseque过滤、
排除和get方法。QueryList允许开发人员轻松地查询和检索复杂列表中的数据,而无需进行不必要的冗长的迭代和选择。为
字典提供向后兼容的包装,允许对键值进行点查找和赋值。

查看[完整的
文档](https://querylist.readthedocs.org/)了解更多信息。


pip install querylist

querylist根据python 2.6、2.7、3.3、3.4和pypypy进行测试。

它们都有相同的功能,一个
从一个普通的dict期望:

>>;>querylist import betterdict
>;>src={foo':'bar','items':true}
>;>bd=betterdict(src)
>;>;>;bd.items()
[('items',true),('foo','bar')]


但是,betterdicts还可以执行点查找和键值分配!

>
>>gt>gt;bd.bar'u time=true
>gt>gt>gt;bd.foo='meh'
>>gt;bd.foo
>'meh'
>>>gt;bd.bar'u time

>true
>true
>br/>>


>




>与普通dict属性冲突的键值可以通过一个
>>>bd'u bd属性属性来访问。

>br/>
>bd>bd bum'meh'
>>>>>bd;/>
>;>;bd.items
<;位于0x10D3A7FB0>;
>;
>;>gt;bd.bd.items
true

>
[关于betterdics>>>>>更多关于betterdics>;](https://querylist.readthedocs.org/en/latest/betterdict.html)











>
>;>;>;从QueryList导入querylist
>;>;站点列表=[
{
‘url’:'http://site1.tld/',
‘meta’:{
‘关键字’:['musta','kittens',
‘描述’:'my cool site'
},
‘发布’:true,
‘id':1,
‘名称’:‘站点1’
},{
‘url’:‘http://site2.tld/’,
‘元’:{
‘关键字’:[‘catsup’,‘dogs’,
‘说明’:‘我的酷站点’
},
‘已发布’:真,
‘id’:2,
‘名称’:‘站点2’
},{
'url':'http://site3.tld/',
'meta':{
'keywords':['芥末','kittens',
'description':'my cool site'
},
'published':false,
'id':3,
'name':'site3'
}
]ql=querylist(site_list)
>;>ql==site_list
true

published=true)
[{url':'http://site3.tld/','meta':{keywords':['芥末','kittens'],'description':'my cool site'},'id':3,'name':'site3','published':false}
>;>;ql.filter(published=true).exclude(meta\u keywords\u contains='catsup')
[{url':'http://site1.tld/','meta':{'keywords':['芥末','kittens','description':'my cool site'},'id':1,'name':'site1','published':true}


,最后,他们让开发人员使用get
方法检索特定对象:

>;&ql.get(id=2)
{'url':'http://site1.tld/','meta':{'keywords':['芥末','kittens','description':'my cool site'},'id':2,'name':'site 1','published':true}

默认情况下,querylist只处理字典列表。这在一定程度上是通过在
实例化中将成员指令转换为更好的指令来实现的。querylist还支持支持dot
查找的任何对象的列表。` querylist.\uu init\uuuu()`有一些参数,使用户可以轻松地将
字典列表转换为自定义对象。考虑上面的"site_list"示例:我们可以用一个自定义的site类来实例化它,该类提供发布、取消发布和删除站点的方法,而不是让querylist默认为一个更好的信息技术。这样我们就可以编写如下代码,发布所有未发布的站点:

>;>;from site_api import site
>;>;ql=querylist(site_list,wrap=site)
>;[x.publish()for x in ql.exclude(published=true)]关于QueryList(https://queryList.readthedocs.org/en/latest/queryList.html)


分叉回购协议,然后在本地克隆它。
2.安装开发需求:`pip install-r requirements.txt`(
对于python 2.6使用'requirements26.txt')
3。使用[testtube](https://github.com/thomasw/testtube/)的'stir'命令
(通过2安装)监视项目目录的更改,并自动运行测试套件。
4。进行更改并提交拉取请求。

目前,querylist具有很好的测试覆盖率。请尽你的一份力量,通过在添加或更改代码时编写测试来保持这种状态。


有关
详细信息,请参见
[许可证](https://github.com/thomasw/querylist/blob/master/license)。

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

推荐PyPI第三方库


热门话题
用setter将对象转换为java中的映射   java如何通过JQL直接找到多对多实体的交集?   java Android文本检查帮助   纸牌游戏中的java玩家顺序   java从活动A移动到活动B,再从活动B返回到活动A   java如何在GAE servlet中保存JSON文件以满足Android客户端的请求?   连接到本地主机上的SLiM服务器时发生java错误:8080   java是否可以使用setOnMarkerClickListener对for循环中创建的各种标记产生不同的结果?   检查数字是否为回文的java逻辑   java在两个独立的服务中是否存在数据同步模式?   java在组合框中选择ascendingorder时如何对元素列表进行排序   java如何在不更新旧表的情况下更新表中的字段并将其插入新表   javasos和return语句   java与示例安卓活动建立解析连接。错误:任务“:app:dexDebug”的执行失败   java Maven发布问题,带有代理授权的分叉部署过程,因为参数失败,需要407代理授权