爬蟲學習(十六) jsonpath

2022-08-03 01:36:10 字數 1465 閱讀 7361

jsonpath是一種資訊抽取類庫,是從json文件中抽取指定資訊的工具,提供多種語言實現的版本

jsonpath對json來說,就相當於xpath對於xml

jsonpath和xpath的語法對比

jsonpath用乙個抽象的名字$來表示最外層物件

網路上請求json資料的方式

import requests
# 請求json資料,使用requests模組

response =requests.get(url=url,headers=headers)

# 對json進行解碼,解碼utf8格式

response.encoding=("utf8")

# 獲取json的content屬性

content = response.content

案例一# jsonpath的索引從0開始,區別於xpath從1開始

shu01 = jsonpath.jsonpath( shudata, "$.store.book" )

print( shu01 )

# 輸出結果:[[, , , ]]

shu0 =jsonpath.jsonpath(shudata,"$.store.book[1]")

print(shu0)

# 輸出結果:顯示第二個物件

#

案例二# 載入json檔案,讀成資料流

fp = open("lagou_json.json","r",encoding="utf8")

# 將資料流載入成python中顯示的json格式資料

jsondata = json.load(fp)

# 解析當前json資料

# 如:或取中國a開頭的市級行政區名

city = jsonpath.jsonpath(jsondata,'$..[a].[name]')

print(city)

# 輸出結果:['安慶', '安順', '安康', '澳門特別行政區', '鞍山', '安陽', '阿壩藏族羌族自治州']

案例三

# 查詢數的**大於10元的書物件

shu = jsonpath.jsonpath(shudata,"$..book[?(@.price>10)]")

print(shu)

# 輸出結果:

# 輸出結果:[, ]

案例四

# 查詢json物件中含有『isbn』屬性的json物件

shu1 =jsonpath.jsonpath(shudata,"$..book[?(@.isbn)]")

print(shu1)

# 輸出結果:[, ]

爬蟲 解析內容 jsonpath

import json dump 把json字串寫入檔案 load 讀取檔案中的json物件 dumps 把python物件轉換為json字串 loads 把json字串轉換為python物件 da lao list filepath dict str python物件 json字串 result ...

python爬蟲教程 jsonPath

這個是python自帶的輕量級的資料交換格式,這個與xml相較比不相上下.json.loads python中的json 模組 提供了四個功能 dumps,dump,loads,load 用於字串和python資料型別進行轉換 把json格式字串解碼轉換成python物件 從json到python的...

Python爬蟲之路 jsonpath模組

知識點 如果有乙個多層巢狀的複雜字典,想要根據key和下標來批量提取value,這是比較困難的。jsonpath模組就能解決這個痛點,接下來我們就來學習jsonpath模組 jsonpath可以按照key對python字典進行批量資料提取知識點 了解 jsonpath模組的使用場景 jsonpath...