python jsonpath()findall()提取值

Posted 南方的墙

tags:

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

findall()

import re
"""
"d"表示取数字0-9,
"D"表示不要数字,
"w"在正则里面代表匹配从小写a到z,大写A到Z,数字0到9
"W"在正则里面代表匹配除了字母与数字以外的特殊符号

"""
s = one1two2three3four4five12345
k = re.compile(d+)    #‘d+‘相当于‘ddd‘

#findall()函数的三种表示形式
print(k.findall(s))
print(re.findall(k,s))
print(re.findall(d+,s))

jsonpath()

import requests,jsonpath

shop=requests.get(url="").json()
#商店里所有书籍的作者
author_list=jsonpath.jsonpath(shop,$.store.book[*].author)

#返回所有的作者
author_list2=jsonpath.jsonpath(shop,$..author)

#商店里的所有东西
category_dx=jsonpath.jsonpath(shop,$.store.*)

#商店里一切的价格
store_price_list=jsonpath.jsonpath(shop,$.store..price)

#第三本书
book_3=jsonpath.jsonpath(shop,$..book[2])

#最后一本书
book_last=jsonpath.jsonpath(shop,$..book[-1])
num=len(jsonpath.jsonpath(shop,$..book))-1
book_last=jsonpath.jsonpath(shop,f$..book[{num}])  #取值

#前两本书
book_12=jsonpath.jsonpath(shop,f$..book[0,1])

#过滤所有便宜10以上的书籍
book_lg10=jsonpath.jsonpath(shop,$..book[?(@.price<10)])

#使用isbn number过滤所有书籍
book_lg10=jsonpath.jsonpath(shop,$..book[?(@.isbn)])

 

以上是关于python jsonpath()findall()提取值的主要内容,如果未能解决你的问题,请参考以下文章

Python_jsonPath模块的使用

python中jsonpath模块的运用

Python Jsonpath模块用法

Python3之jsonpath使用和json转换

python之jsonpath模块

python中jsonpath模块,解析多层嵌套的json数据