关于json数据的过滤获取

Posted 求知鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于json数据的过滤获取相关的知识,希望对你有一定的参考价值。

json数据:book.json

{
    "store": {
        "book": [
            {
                "category": "文学",
                "author": "路遥",
                "title": "平凡的世界",
                "price": 8.95
            },
            {
                "category": "文学",
                "author": "席慕蓉",
                "title": "穆斯林的葬礼",
                "price": 12.99
            },
            {
                "category": "历史",
                "author": "二月河",
                "title": "康熙大帝",
                "isbn": "0-553-21311-3",
                "price": 8.99
            },
            {
                "category": "言请",
                "author": "琼瑶",
                "title": "还珠格格",
                "isbn": "0-395-19395-8",
                "price": 22.99
            }
        ],
        "bicycle": {
            "color": "red",
            "price": 19.95
        }
    },
    "expensive": 10
}

处理、过滤:

import json
import jsonpath

#将json格式字符串转化为python对象
ojb = json.load(open(book.json,r,encoding=utf8))
#print(ojb)

#查找所有书的所有作者
#book是一个列表
#ret = jsonpath.jsonpath(ojb,‘$.store.book[*].author‘) #book[*]找所有 后面要加*
#ret= jsonpath.jsonpath(ojb,‘$..author‘)
#print(ret)

#查找store下面所有字典  返回一个列表
# ret= jsonpath.jsonpath(ojb,‘$.store.*‘)
# print(len(ret))

#查找store下面所有的price
# ret= jsonpath.jsonpath(ojb,‘$.store..price‘)
# print(ret)
# print(len(ret))

#找第三本书  返回一个列表
# ret= jsonpath.jsonpath(ojb,‘$..book[2]‘)    #json的下标是从0开始
# ret= jsonpath.jsonpath(ojb,‘$..book[0,1]‘) # 找前两本书
# print(ret)
# print(len(ret))


#找最后一本书
# ret= jsonpath.jsonpath(ojb,‘$..book[(@.length-1)]‘)
# print(ret)
# print(len(ret))

#有isbn元素的书
#ret= jsonpath.jsonpath(ojb,‘$..book[?(@.isbn)]‘)
# print(ret)
# print(len(ret))

#找键price:价格低于10的书
ret= jsonpath.jsonpath(ojb,$..book[?(@.price<10)])
print(ret)
print(len(ret))

json数据、python对象、字典格式的相互转化

jsonpath模块
用来解析josn数据使用的
python处理josn格式用到的函数
    import json
    json.dumps() :将字典或者列表转化为json格式的字符串
    json.loads() :将json格式的字符串转化为python对象
    记忆方法:前两个有s,是字符串和两个格式之间的转化

    json.dump() :将字典或者列表转化为json格式的字符串并且写入到文件中
    json.load() :从文件中读取json格式字符串,转化为python对象
    记忆方法:后两个不带s,属于写入文件和从文件中读取


import json
it = [{name:王二小,age:30},
      {name:周三,age:29},
      {name:李四,age:28},
      {name:王五,age:27}
      ]
string = json.dumps(it) #将字典或者列表转化为json格式的字符串
#print(string)


obj = json.loads(string)  #将json格式的字符串转化为python对象
#print(type(obj))

以上是关于关于json数据的过滤获取的主要内容,如果未能解决你的问题,请参考以下文章

KVC:如何测试现有密钥

使用凌空json数据的片段中的Recyclerview?

js正则表达式过滤以指定字符开头以指定字符结尾的文本内容

实用代码片段将json数据绑定到html元素 (转)

使用 AsyncTask 从 JSON 中获取数据

从片段中的json获取值