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+'相当于'\d\d\d'

#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)]')

猜你喜欢

转载自www.cnblogs.com/shuzf/p/11737939.html
今日推荐