‘ age ‘ : ‘ 29 ‘ }
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数据的过滤、获取
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31714.html