查找嵌套数据结构

lookuper的Python项目详细描述


PyPIVersionsTravisCodecovBlack

lookuper使查找嵌套数据结构中的目标变得容易。A 查找生成与作为参数列表传递的目标匹配的值:

>>>fromlookuperimportlookup>>>list(lookup({'a':[{'b':1}]},'a',0,'b'))[1]

目标可以包含星星(*)来匹配任何东西和globstar (**)以递归方式匹配任何内容:

^{pr2}$

请注意,这些特殊字符可以转义:

>>>list(lookup({'*':1},r'\*'))[1]

目标还可以包含函数和正则表达式:

>>>list(lookup({'a':{'b','B'}},'a',str.islower))['b']>>>importre>>>list(lookup({'a':{'b','B'}},'a',re.compile(r'[a-z]')))['b']

食谱

lookuper可以与其他库组合,例如 more-itertools 要只返回一个值:

>>>frommore_itertoolsimportonly>>>deflookup1(data,*targets,**kw):...returnonly(lookup(data,*targets),**kw)>>>lookup1({},'a')>>>lookup1({'a':1},'a')1>>>lookup1({'a':1,'b':2},'*')Traceback(mostrecentcalllast):...ValueError:Expectedexactlyoneiteminiterable,butgot1,2,andperhapsmore.

扩展

默认情况下,lookuper只支持嵌套数据结构,如 映射、序列和集合。它可以扩展到支持其他类型:

>>>fromlookuperimportlookup_data>>>_=lookup_data.register(object,lambdadata:(...(name,getattr(data,name,None))fornameindir(data)...))>>>list(lookup(object(),'__class__','__class__','__name__'))['type']

项目信息

lookuper是根据MIT许可证发布的, GitHub上的代码, 以及PyPI上的最新版本。在

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

推荐PyPI第三方库


热门话题
Docker&SeleniumJava:无法在Docker容器上运行的chrome浏览器中上载图像/文件   在python中运行java命令   Java垃圾收集器异常行为   java java是否根据底层操作系统执行字节码级优化?   java是否可以休眠自定义查询返回映射而不是列表?   java Spring引导RabbitMQ接收器Jackson反序列化到POJO   apache flex在ActionScript3中创建对象相等“HashMap”作为java HashMap   java如何在Eclipse集成中切换JProfiler启动器   缓存JSP页面结果的java最佳实践?   java集成jaxb绑定文件,使用CXF生成基于WSDL的客户端   java为什么在上传操作结束之前,客户端没有检测到HttpServletResponse的PrintWriter内容?   java在接口内创建类和在类内创建接口有什么用   java向文件写入错误Android Studio   java合并多个RealmList并对结果列表排序?   谷歌API视觉java。lang.NoSuchMethodError   java如何使用逗号分别存储每个值,然后将它们存储到单独的数组中?