Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

tinybees/eqjson

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ejson

An smart json,similar to the jquery, read and update the json data.

一个小巧的、完全无依赖的类似jquery写法的读取和更改json的工具,可以按照json的层级或者某个属性读取json数据。

Installing aelog

  • pip install eqjson

Usage

假如json数据如下:

[
   {
      'object':{
         'name':'myLittleObject',
         'value':[
            {
               'key2':'value2',
               'key3':'value3',
               'key1':'value1'
            },
            {
               'key33':'value33',
               'key1':'value11'
            },
            {
               'key333':'value333',
               'key1':'value111'
            }
         ],
         'type':'list',
         'valueAsString':[
            'one',
            'two'
         ]
      }
   }
]
from eqjson import EasyQueryjson

# 实例化
ejson_obj = EasyQueryjson(json_doc)
# 查询
ejson_obj.get_value("object.name")
ejson_obj.get_value("object.valueAsString.0")
# update
ejson_obj.change_value("object.name", "updatename")
ejson_obj.change_value("object.value.2", ["five", "four"])
# add
ejson_obj.append_value("object.valueAsString", "three")
ejson_obj.append_value("object.valueA", {"test":456})
# remove
ejson_obj.remove_value("object.valueAsString")
ejson_obj.remove_value("object.value")

# 具体的查询参数详情如下

基本用法:

  • 如果要获取name值:则写法为0.object.name
  • 如果json最外层是{}获取name值:则写法为object.name
  • 如果要获取valueAsString中的第一个值:则写法为0.object.valueAsString.0
  • 如果json最外层是{}获取valueAsString中的第一个值:则写法为object.valueAsString.0
  • 获取value列表中的第一个值的key1值:则写法为0.object.value.0.key1
  • 获取value列表中的所有的key1值:则写法为0.object.value.key1, 则结果为['value1','value11', 'value111']

高级用法:

  • 支持通过属性确定值,如果json是无序的,要获取key1值为value1所在节点的key3的值,则写法为0.object.value[key1=value1].key3
  • 支持通过多属性确定值,比如要获取key1值为value1,key2值为value2,所在节点的key3的值,则写法为0.object.value[key1=value1,key2=value2].key3
  • 支持多层属性,比如要获取name为myLittleObject的以上的值:则写法为[name=myLittleObject].object.value[key1=value1].key3

单测

  • 100%文件覆盖率,92%的行覆盖率

About

An smart json,similar to the jquery, read the json data

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.