查询json dicts

gymnasdicts的Python项目详细描述


体操运动员

https://img.shields.io/pypi/v/gymnasdicts.svghttps://img.shields.io/travis/unai/gymnasdicts.svgDocumentation StatusUpdates

查询json dicts

特点

gymnasdicts是一个轻量级库,用于在Python中查询json兼容的嵌套字典。在

这个包公开了一个类,其中有三个函数可以链接在一起,以便 遵循类似sql的约定。在

查询

查询是库的入口点,它是 被所有其他方法操作并返回。在

选择

select标识并命名要使用的json对象中的嵌套键。 第一个参数是要查询的json对象。 其余参数采用关键字arg形式,其中:

  • 这些值是受限制的jsonpath,不允许进行筛选。在
  • 键是用户定义的变量,上面的值被分配给这些变量。在

其中

其中过滤“按值选择”的结果。它的参数是lambda函数 其中参数名对应于select中定义的变量。在

进入

into定义输出的形状。它唯一的参数是lambda函数 其中参数名对应于select中定义的变量。在

示例

fromgymnasdictsimportselectpayload={"sales":[{"id":1,"number":34,"date":"2020-01-04"},{"id":2,"number":12,"date":"2020-02-05"},{"id":3,"number":-4,"date":"2020-03-06"},],"prices":[{"id":1,"cost":{"value":0.98,"denomination":"pounds"}},{"id":2,"cost":{"value":34,"denomination":"pence"}},{"id":3,"cost":{"value":1.02,"denomination":"pounds"}},],"accounting":[{"denomination":"pounds","multiplier":1,},{"denomination":"pence","multiplier":0.01,}]}q=Query(payload)a=q.select(sales_id="$.sales[:].id",number="$.sales[:].number",price_id="$.prices[:].id",cost="$.prices[:].cost[:].value",denom_1="$.prices[:].cost[:].denomination",denom_2="$.accounting[:].denomination",multiplier="$.accounting[:].multiplier")w=s.where(lambdasales_id,price_id:sales_id==price_id,lambdanumber:number>0,lambdadenom_1,denom_2:denom_1==denom_2)i=w.into(lambdanumber,cost,multiplier:number*cost*multiplier)assertsum(i)==37.4

常见问题

连接呢?

select实际上是所有提供的jsonpath上的笛卡尔连接, i、 e

^{pr2}$

相当于

selectA.aasx,B.basy,C.caszfromTblasA,TblasB,TblasC

这样其中可以用于在上执行的工作。在

这太可怕了,那记忆呢?!

发电机负责这个。在

学分

此包是用Cookiecutteraudreyr/cookiecutter-pypackage项目模板创建的。在

感谢kclaurelie关于select/where和keys/values之间关系的有用讨论。在

历史

  • PyPI的第一个版本。在

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

推荐PyPI第三方库


热门话题
调试如何使用VIM/GVIM调试Java应用程序?   java Tomcat 8+OPenJDK 8 64位内存使用率   算法希尔密码加密/解密源代码Java(2 x 2矩阵密钥)   番石榴中有没有类似于功能性Java的效果?   Java算法:检查字典中是否有字符串   java如何从lambda中获取变量?   获取当前jar文件名的java   java LinkedList:如何将当前节点分配给它后面的节点?删除当前节点时   以与ImageMagick的“identify”命令相同的方式在Java中获取图像质量   java是否可以在运行时使用JAXR创建Web服务?   java在listView中过滤两个字符串   maven管理具有外部资源依赖关系的多个Java模块   java Android通过Thread/Runnable/Handler/Looper方法执行简单的异步任务   java Hibernate返回空对象   java将一个jar打包成一个dist dir,其中包含独立的外部资源和依赖项