从python集合中安全地提取(深层)键/路径从来就不是那么容易。

pluck的Python项目详细描述


https://img.shields.io/pypi/v/plucky.svghttps://img.shields.io/pypi/l/plucky.svghttps://img.shields.io/pypi/wheel/plucky.svghttps://img.shields.io/pypi/pyversions/plucky.svghttps://api.travis-ci.org/randomir/plucky.svg?branch=master

plucky.pluckable愉快地包装任何python对象并允许 对于带有属性和项getter(例如.attr)的链式软抽取, ["key"][idx][::2]或组合:["key1", "key2"], 以及[0, 3:7, ::-1];甚至:["length", 0:5, 7])。

plucky.pluck将允许您提取与^{tt10}相同的。$ (关于提取操作),但接受字符串选择器 而不是python表达式。

plucky.plucks使您能够通过 使用由类似字典的键和类似列表的键组成的简明字符串选择器 索引/切片。表示cluck simplified,因为它只支持 pluck语法。它更简单,效率更高。

plucky.merge有助于两个数据结构的递归合并,减少 使用提供的二进制运算符的叶值。

安装

plucky可用作zero dependencypython包。安装时使用:

$ pip install plucky

用法

frompluckyimportpluck,plucks,pluckable,mergepluckable(obj).users[2:5,10:15].name["first","middle"].valuepluck(obj,'users[2:5, 10:15].name["first", "middle"]')plucks(obj,'users.2:5.name.first')merge({"x":1,"y":0},{"x":2})

示例

obj={'users':[{'uid':1234,'name':{'first':'John','last':'Smith',}},{'uid':2345,'name':{'last':'Bono'}},{'uid':3456}]}plucks(obj,'users.1.name')# -> {'last': 'Bono'}plucks(obj,'users.name.last')# -> ['Smith', 'Bono']plucks(obj,'users.*.name.first')# -> ['John']pluckable(obj).users.name.first.value# -> ['John']pluckable(obj).users.uid[0,2,1].value# -> [1234, 3456, 2345]pluckable([datetime.datetime.now(),None,{'month':8}])[::2].month# -> [5, 8]pluckable(obj,skipmissing=False,default='Unnamed').users.name.first.value# -> ['John', 'Unnamed', 'Unnamed']

更多的例子!:)

pluckable(obj).users[:,::-1].name.last.value# -> ['Smith', 'Bono', 'Bono', 'Smith']pluckable(obj).users[:,::-1].name.last[0,-1].value# -> ['Smith', 'Smith']pluck(obj,'users[:, ::-1].name.last[0, -1]')# -> ['Smith', 'Smith']plucks([1,{'val':2},3],'val')# -> [2]plucks([1,{'val':[1,2,3]},3],'1.val.-1')# -> 3merge({"x":1,"y":0},{"x":2})# -> {"x": 3, "y": 0}merge({"a":[1,2],"b":[1,2]},{"a":[3,4],"b":[3]})# -> {"a": [4, 6], "b": [1, 2, 3]}

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

推荐PyPI第三方库


热门话题
java无法填充ArrayList   java编辑右键单击约会JFXtras上的弹出窗口   Grails2.0.3中的java未关闭GSP表达式(尽管已关闭)   Java 1.8.0_162、Drools 6.5.0和多决策表(电子表格)   java禁止在Redis断开连接时重新连接Spring引导应用程序   java TCP聊天服务器   java如何使用paintComponent()而不调用多个“draw()”方法?   unix为什么找不到installshield Java包?   如何阻止java的使用。伊奥。文件   java Facebook SDK阻止向Firebase上传字符串   java如何下载Magnolia cms社区版?   java是否可以像JSP一样序列化Gson中方法返回的数据?   java如何在线程完成后使For循环继续?   java如何将数据从Angular 10表单传递到包含字符串和文件/图像的Spring Boot Rest API?   java如何识别SQLite数据库列中的一段数据?   java在无序列表中查找缺少的数字   线程“main”java中出现异常。unsatifiedLinkError:java中没有indri_jni。图书馆路径   日志如何在Java中登录到文件?   类强制转换异常java