欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用jsonpath-rw模塊處理Json對(duì)象操作示例

 更新時(shí)間:2018年07月31日 14:17:45   作者:站在兩個(gè)世界的邊緣  
這篇文章主要介紹了Python使用jsonpath-rw模塊處理Json對(duì)象操作,結(jié)合實(shí)例形式分析了Python使用requests與response處理json的方法,并給出了jsonpath_rw模塊操作json對(duì)象的基本示例,需要的朋友可以參考下

本文實(shí)例講述了Python使用jsonpath-rw模塊處理Json對(duì)象操作。分享給大家供大家參考,具體如下:

這兩天在寫一個(gè)爬蟲,需要從網(wǎng)站返回的json數(shù)據(jù)提取一些有用的數(shù)據(jù)。

向url發(fā)起請(qǐng)求,返回的是response,在python3中,response.content是二進(jìn)制bytes類型的,需要用decode()轉(zhuǎn)成unicode的str類型

#如果用的requests發(fā)的請(qǐng)求
import json
response = requests.get(url,headers=self.headers)
response = response.content.decode()
response = json.loads(response) #轉(zhuǎn)成json對(duì)象,在python里也就是dict類型

#如果用的scrapy.Request發(fā)的請(qǐng)求
import json
import scrapy
response = scrapy.Request(url,headers=self.headers)
response = response.text.decode()
response = json.loads(response) #轉(zhuǎn)成json對(duì)象,在python里也就是dict類型

也就是說(shuō)處理json對(duì)象其實(shí)可以和處理dict一樣,那就要用到很多中括號(hào),而且取值也只能取單個(gè)精確的值。一點(diǎn)都不靈活

用過(guò)xpath和css選擇器的人當(dāng)然會(huì)覺(jué)得這種方法很笨重。

而恰巧json也有類型的選擇器:jsonpath

但是需要注意的是,python的庫(kù)并不是jsonpath(還真有這個(gè)庫(kù),但是不知如何使用,官方也沒(méi)有給出python的使用文檔),真正在python中可以使用的庫(kù)是:jsonpath-rw

官方文檔https://pypi.python.org/pypi/jsonpath-rw (更多jsonpath的語(yǔ)法請(qǐng)點(diǎn)擊鏈接)

下面只列下簡(jiǎn)單常用的基本方法

使用示例

>>> from jsonpath_rw import jsonpath, parse
>>> json_obj = {"student":[{"male":176,"female":162},{"male":174,"female":159}]}
>>> jsonpath_expr = parse("student[*].male")
>>> male = jsonpath_expr.find(json_obj)
>>> male #返回的是list,但是不是我們想要的值
[DatumInContext(value=176, path=Fields('male'), context=DatumInContext(value={'male': 176, 'female': 162}, path=<jsonpath_rw.jsonpath.Index object at 0x000001C6B95109B0>, context=DatumInContext(value=[{'male': 176, 'female': 162}, {'male': 174, 'female': 159}], path=Fields('student'), context=DatumInContext(value={'student': [{'male': 176, 'female': 162}, {'male': 174, 'female': 159}]}, path=This(), context=None)))), DatumInContext(value=174, path=Fields('male'), context=DatumInContext(value={'male': 174, 'female': 159}, path=<jsonpath_rw.jsonpath.Index object at 0x000001C6B9510588>, context=DatumInContext(value=[{'male': 176, 'female': 162}, {'male': 174, 'female': 159}], path=Fields('student'), context=DatumInContext(value={'student': [{'male': 176, 'female': 162}, {'male': 174, 'female': 159}]}, path=This(), context=None))))]
#想要獲取值,要用如下方法
>>> [match.value for match in male]
[176, 174]

PS:這里再為大家推薦幾款比較實(shí)用的json在線工具供大家參考使用:

在線JSON代碼檢驗(yàn)、檢驗(yàn)、美化、格式化工具:
http://tools.jb51.net/code/json

JSON在線格式化工具:
http://tools.jb51.net/code/jsonformat

在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson

json代碼在線格式化/美化/壓縮/編輯/轉(zhuǎn)換工具:
http://tools.jb51.net/code/jsoncodeformat

在線json壓縮/轉(zhuǎn)義工具:
http://tools.jb51.net/code/json_yasuo_trans

更多Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python操作json技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 用python擬合等角螺線的實(shí)現(xiàn)示例

    用python擬合等角螺線的實(shí)現(xiàn)示例

    這篇文章主要介紹了用python擬合等角螺線的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Python中json模塊load/loads方法實(shí)戰(zhàn)以及參數(shù)詳解

    Python中json模塊load/loads方法實(shí)戰(zhàn)以及參數(shù)詳解

    經(jīng)常在Python中對(duì)JSON格式的文件進(jìn)行操作,今天對(duì)這些操作做一個(gè)總結(jié),下面這篇文章主要給大家介紹了關(guān)于Python中json模塊load/loads方法實(shí)戰(zhàn)以及參數(shù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Python基礎(chǔ)之numpy庫(kù)的使用

    Python基礎(chǔ)之numpy庫(kù)的使用

    這篇文章主要介紹了Python基礎(chǔ)之numpy庫(kù)的使用,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • YOLOv5構(gòu)建安全帽檢測(cè)和識(shí)別系統(tǒng)使用詳解

    YOLOv5構(gòu)建安全帽檢測(cè)和識(shí)別系統(tǒng)使用詳解

    這篇文章主要為大家介紹了YOLOv5構(gòu)建安全帽檢測(cè)和識(shí)別系統(tǒng)使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • python判斷變量是否為列表的方法

    python判斷變量是否為列表的方法

    在本篇文章里小編給大家整理了關(guān)于python判斷變量是否為列表的方法,有需要的朋友們可以學(xué)習(xí)下。
    2020-09-09
  • Python中Pyspider爬蟲框架的基本使用詳解

    Python中Pyspider爬蟲框架的基本使用詳解

    這篇文章主要介紹了Python中Pyspider爬蟲框架的基本使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python利用matplotlib繪制圓環(huán)圖(環(huán)形圖)的實(shí)戰(zhàn)案例

    Python利用matplotlib繪制圓環(huán)圖(環(huán)形圖)的實(shí)戰(zhàn)案例

    環(huán)形圖也被稱為圓環(huán)圖,它在功能上與餅圖相同,只是中間有一個(gè)空白,并且能夠同時(shí)支持多個(gè)統(tǒng)計(jì)數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Python利用matplotlib繪制圓環(huán)圖的實(shí)戰(zhàn)案例,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • python保留格式匯總各部門excel內(nèi)容的實(shí)現(xiàn)思路

    python保留格式匯總各部門excel內(nèi)容的實(shí)現(xiàn)思路

    這篇文章主要介紹了python保留格式匯總各部門excel內(nèi)容,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Django csrf校驗(yàn)的實(shí)現(xiàn)

    Django csrf校驗(yàn)的實(shí)現(xiàn)

    這篇文章主要介紹了Django csrf校驗(yàn)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • python jupyter入門教程

    python jupyter入門教程

    Jupyter Notebook是一個(gè)開(kāi)源的Web應(yīng)用程序,允許用戶創(chuàng)建和共享包含代碼、方程式、可視化和文本的文檔,今天通過(guò)本文給大家分享python jupyter入門教程,需要的朋友一起看看吧
    2021-08-08

最新評(píng)論