福田网站建设推荐,保定企业建站程序,深圳营销网站建设联系方式,广东微信网站制作哪家好py jsonqpy jsonq是一个简单、优雅的python包#xff0c;可以查询任何类型的json数据。通过在json上提供类似orm的查询#xff0c;这将使您的生活更轻松。安装pip install pyjsonq用法只需在开始使用前导入软件包即可。作为python包#xff1a;frompyjsonqimportJsonQ通过从…py jsonqpy jsonq是一个简单、优雅的python包可以查询任何类型的json数据。通过在json上提供类似orm的查询这将使您的生活更轻松。安装pip install pyjsonq用法只需在开始使用前导入软件包即可。作为python包frompyjsonqimportJsonQ通过从文件导入json数据您可以立即开始使用此包JsonQ(data.json)或JsonQ(data{id:1,name:shaonty})# must assign data if you want to pass data instead of file_path您可以使用各种查询方法开始查询数据例如where、or_where、where_in、where_not_in、where_start_with、where_ends_with、where_contains等等。此外您还可以使用总和、计数、分组、排序、最大值、最小值等来聚合查询后的数据。让我们看一个简单的例子# sample Json datajson_object{products:[{id:1,city:bsl,name:iPhone,cat:1,price:80000.5},{id:2,city:null,name:macbook pro,cat:1,price:150000},{id:3,city:dhk,name:Redmi 3S Prime,cat:2,price:12000},{id:4,city:bsl,name:macbook air,cat:2,price:110000}]};qeJsonQ(file_path)resqe.at(products).where(cat,,2).get()print(res)This will print[{id: 3,city: dhk,name: Redmi 3S Prime,cat: 2,price: 12000},{id: 4,city: bsl,name: macbook air,cat: 2,price: 110000}]假设我们想得到查询结果的价格总和。我们可以通过调用sum()方法而不是get()resqe.at(products).where(cat,,2).sum(price)print(res)It will print:122000让我们探索完整的api看看这个库还能为您带来什么魔力。让我们API下面的api示例基于这里给出的示例json数据。要更好地了解这些示例请先查看json数据。每个api的详细示例也可以在这里找到。API列表get()此方法将执行查询并返回结果数据。在使用了一些查询方法之后您需要最终调用它。详细信息可在其他API示例中找到。来自文件(文件路径)此方法是set json文件路径的替代方法。详细信息可在其他API示例中找到。示例假设您有一个名为data.json的文件。您可以这样设置路径quJsonQ().from_file(data.json).at(users).where(id,,1).get()位于(路径)路径--要开始查询的数据的路径层次结构。默认情况下查询将从给定的json数据的根开始。我如果要首先从要开始查询的位置移动到数据的嵌套路径层次结构请使用此方法。跳过路径参数或指定。作为参数也将从根数据开始查询。示例假设您希望开始查询json数据的users属性的值。你可以这样做quJsonQ(file_path).at(users).where(id,,1).get()如果您想深入层次结构可以这样做qeJsonQ(file_path).at(users.5.visits).where(year,,2011).get()请参见此处的详细示例。位置(键、运算符、值)键--数据的属性名。或者您可以在这里传递一个函数在其中对多个查询进行分组。请参见示例中的详细信息值--要匹配的值。它可以是一个intstringbool甚至float——这取决于运算符运算符--用于匹配的操作数。可以使用以下操作数用于相等匹配eq与相同 L 代码对于弱不相等匹配neq与相同gt检查数据中给定键的值是否大于值gt与gt相同lt检查数据中给定键的值是否小于值lt与lt相同gt检查数据中给定的键的值是否大于或等于值gte与gt相同lt检查数据中给定的键的值是否小于或等于值lte与lt相同null检查数据中给定键的值是否为null(value对于此运算符可以省略where()中的参数value)not null检查数据中给定的键的值是否为notnull(value对于此运算符可以省略where()中的参数value)在中检查数据中给定的键的值是否存在于给定的值中。值应该是一个简单的列表not in检查给定值val中是否不存在数据中给定键的值。val应该是一个简单的列表starts with检查数据中给定的键的值是否以给定的值开头(前缀为)。这只适用于字符串类型数据。ends with检查数据中给定的键的值是否以给定的值结尾(后缀为)。这只适用于字符串类型数据。包含与中的相同示例假设您希望找到具有idof1的用户。你可以这样做quJsonQ(file_path).at(users).where(id,,1).get()您可以在其中添加多个条件。它将在这些多个where条件之间通过和ing给出结果。pip install pyjsonq1请参见此处的详细示例。或_where(键、运算符、值)或_where()的参数与where()的参数相同。where()与或_where()之间的唯一区别是条件由或_where()方法将在其他条件下处理结果。例如如果要查找具有idof1或2的用户可以这样做pip install pyjsonq2请参见此处的详细示例输入位置(键值)键--数据的属性名值--它应该是一个列表此方法的行为类似于where(keyinvalue)方法调用。不在的位置(键值)键--数据的属性名值--它应该是一个列表此方法的行为类似于where(keynotinvalue)方法调用。其中为空(键)键--数据的属性名此方法的行为类似于where(keynone)方法调用。其中不为空(键)键--数据的属性名此方法的行为类似于where(key无)方法调用。以(键、值)开头的位置键--数据的属性名值--应该是字符串此方法的行为类似于where(keystartswithvalue)方法调用。以(键、值)结尾的位置键--数据的属性名值--应该是字符串此方法的行为类似于where(keyendswithvalue)方法调用。U包含的位置(键VAL)键--数据的属性名值--应该是字符串或列表此方法的行为类似于where(keycontainsval)方法调用。总和(属性)属性--数据的属性名示例假设您希望找到products的price之和。你可以这样做pip install pyjsonq3如果要聚合的数据是纯列表则不需要传递property参数。请参见此处的详细示例count()它将返回集合中的元素数。示例假设您想查找products属性中有多少元素。你可以这样做pip install pyjsonq4请参见此处的详细示例大小()这是count()的别名方法max(属性)属性--数据的属性名示例假设您希望找到products的price的最大值。你可以这样做pip install pyjsonq5如果要查询的数据是纯数组则不需要传递property参数。请参见此处的详细示例min(属性)属性--数据的属性名示例假设您希望找到products中price的最小值。你可以这样做pip install pyjsonq6如果要查询的数据是纯数组则不需要传递property参数。请参见此处的详细示例平均值(属性)属性--数据的属性名示例假设你想找出t的平均价格他说产品。你可以这样做pip install pyjsonq7如果要查询的数据是纯数组则不需要传递property参数。请参见此处的详细示例first()它将返回集合的第一个元素。示例pip install pyjsonq8请参见此处的详细示例last()它将返回集合的最后一个元素。示例pip install pyjsonq9请参见此处的详细示例nth(索引)索引--要返回的元素的索引。它将返回集合的第n个(n从0开始)元素。如果给定的索引是一个正的值它将从头返回第n个元素。如果给定的索引是一个负值它将从末尾返回第n个元素。示例frompyjsonqimportJsonQ0请参见此处的详细示例分组依据(属性)属性--要按其对集合进行分组的属性。示例假设您希望基于location属性对users数据进行分组。你可以这样做frompyjsonqimportJsonQ1请参见此处的详细示例排序(顺序)顺序--如果跳过order属性默认情况下数据将按升序排序。您需要将desc作为order参数传递以便按降序对数据进行排序。此外您还可以在order参数中传递一个比较函数以定义您自己的逻辑来对数据进行排序。注意此方法应用于普通数组。如果要对对象数组进行排序则应使用稍后介绍的sortby()方法。示例假设您想对arr数据进行排序。你可以这样做frompyjsonqimportJsonQ2请参见此处的详细示例按(属性、顺序)排序属性--您需要传递进行排序的属性名。顺序--如果跳过order属性默认情况下数据将按升序排序。您需要将desc作为order参数传递以便按降序对数据进行排序。此外您还可以在order参数中传递一个比较函数以定义您自己的逻辑来对数据进行排序。注意此方法应用于对象数组。如果要对普通数组进行排序应使用前面介绍的sort()方法。示例假设您想对products的price数据进行排序。你可以这样做frompyjsonqimportJsonQ3请参见此处的详细示例重置(数据)数据--可以是json文件路径、json字符串或json对象。如果在data参数中没有传递数据则jsonq对象实例将重置为以前初始化的数据。在任何时候您都可能希望将对象实例重置为完全不同的数据集然后对其进行查询。在这种情况下您可以使用这种方法。请参见此处的详细示例clone()它将返回对象实例的完整克隆。请参见此处的详细示例块(大小)在将特定大小的数组分块后它将返回一个完整的新数组。请参见此处的详细示例。错误和问题如果您遇到任何错误或问题请随时打开Github学分特别感谢nahid bin azhar为本套餐提供的灵感和指导。其他平台欢迎加入QQ群-- 979659372 推荐PyPI第三方库