码迷,mamicode.com
首页 > Web开发 > 详细

关于json数据的过滤、获取

时间:2020-01-12 16:41:04      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:price   int   下标   port   ali   path   font   路遥   开始   

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数据的过滤、获取

标签:price   int   下标   port   ali   path   font   路遥   开始   

原文地址:https://www.cnblogs.com/Qiuzhiyu/p/12183008.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!