最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

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

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

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

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

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

官方文檔https://pypi.python.org/pypi/jsonpath-rw (更多jsonpath的語法請點(diǎ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文件與目錄操作技巧匯總

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

相關(guān)文章

  • 玩轉(zhuǎn)python爬蟲之URLError異常處理

    玩轉(zhuǎn)python爬蟲之URLError異常處理

    這篇文章主要介紹了python爬蟲的URLError異常處理,詳細(xì)探尋一下URL\HTTP異常處理的相關(guān)內(nèi)容,通過一些具體的實(shí)例來分析一下,非常的簡單,但是卻很實(shí)用,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Python實(shí)現(xiàn)感知機(jī)(PLA)算法

    Python實(shí)現(xiàn)感知機(jī)(PLA)算法

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)感知機(jī)(PLA)算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • python3.6.8 + pycharm + PyQt5 環(huán)境搭建的圖文教程

    python3.6.8 + pycharm + PyQt5 環(huán)境搭建的圖文教程

    這篇文章主要介紹了python3.6.8 + pycharm + PyQt5 環(huán)境搭建,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • PyQt5 實(shí)現(xiàn)狀態(tài)欄永久顯示消息

    PyQt5 實(shí)現(xiàn)狀態(tài)欄永久顯示消息

    這篇文章主要介紹了PyQt5 實(shí)現(xiàn)狀態(tài)欄永久顯示消息的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python+Selenium實(shí)現(xiàn)表單自動填充和提交

    Python+Selenium實(shí)現(xiàn)表單自動填充和提交

    你是不是也厭倦了每天重復(fù)表單填寫的工作,是時候讓技術(shù)來幫助我們解放雙手了,下面小編就為大家介紹一下如何使用Selenium和Python來自動填充和提交表單
    2023-09-09
  • 20非常有用的Python單行代碼分享

    20非常有用的Python單行代碼分享

    有用的 Python 單行代碼片段,只需一行代碼即可解決特定編碼問題!本文將分享20 個 Python 一行代碼,你可以在 30 秒或更短的時間內(nèi)輕松學(xué)習(xí)它們。這種單行代碼將節(jié)省你的時間,并使你的代碼看起來更干凈且易于閱讀
    2022-11-11
  • 人工智能—Python實(shí)現(xiàn)線性回歸

    人工智能—Python實(shí)現(xiàn)線性回歸

    這篇文章主要介紹了人工智能—Python實(shí)現(xiàn)線性回歸,人工智能分為類型、數(shù)據(jù)集、效果評估、等,線性回歸根據(jù)隨機(jī)初始化的?w?x?b?和?y?來計(jì)算?loss等步驟實(shí)現(xiàn),下面來看看文章的具體實(shí)現(xiàn)吧
    2022-01-01
  • PyQt5多線程防卡死和多窗口用法的實(shí)現(xiàn)

    PyQt5多線程防卡死和多窗口用法的實(shí)現(xiàn)

    這篇文章主要介紹了PyQt5多線程防卡死和多窗口用法的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 基于Python創(chuàng)建可定制的HTTP服務(wù)器

    基于Python創(chuàng)建可定制的HTTP服務(wù)器

    這篇文章主要為大家演示一下如何使用?http.server?模塊來實(shí)現(xiàn)一個能夠發(fā)布網(wǎng)頁的應(yīng)用服務(wù)器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-05-05
  • python 爬取知乎回答下的微信8.0狀態(tài)視頻

    python 爬取知乎回答下的微信8.0狀態(tài)視頻

    這篇文章主要介紹了python 爬取知乎的微信8.0狀態(tài)視頻的方法,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03

最新評論

凌源市| 湖南省| 教育| 康保县| 清苑县| 松潘县| 吴桥县| 随州市| 阿荣旗| 龙游县| 丰城市| 惠东县| 沭阳县| 康定县| 岳阳市| 灵丘县| 德令哈市| 集安市| 宣武区| 西贡区| 浦县| 逊克县| 东乡县| 永和县| 乌苏市| 色达县| 社旗县| 万州区| 黄大仙区| 政和县| 富阳市| 凌云县| 库尔勒市| 宁国市| 工布江达县| 砚山县| 全椒县| 木兰县| 土默特右旗| 双柏县| 乌拉特后旗|