日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

在Python中操纵json数据的最佳方式

發布時間:2024/9/15 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Python中操纵json数据的最佳方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

本文示例代碼及文件已上傳至我的Github倉庫https://github.com/CNFeffery/DataScienceStudyNotes

?

1 簡介

在日常使用Python的過程中,我們經常會與json格式的數據打交道,尤其是那種嵌套結構復雜的json數據,從中抽取復雜結構下鍵值對數據的過程枯燥且費事。

而熟悉xpath的朋友都知道,對于xml格式類型的具有層次結構的數據,我們可以通過編寫xpath語句來靈活地提取出滿足某些結構規則的數據。

類似的,JSONPath也是用于從json數據中按照層次規則抽取數據的一種實用工具,在Python中我們可以使用jsonpath這個庫來實現JSONPath的功能。

2?在Python中使用JSONPath提取json數據

jsonpath是一個第三方庫,所以我們首先需要通過pip install jsonpath對其進行安裝。

2.1?一個簡單的例子

安裝完成后,我們首先來看一個簡單的例子,從而初探其使用方式:

這里使用到的示例json數據來自高德地圖步行導航接口,包含了從天安門廣場到西單大悅城的步行導航結果,原始數據如下,層次結構較深:

假如我想要獲取其嵌套結構中steps鍵值對下每段行程的耗時duration數據,配合jsonpath就可以這樣做:

import?json from?jsonpath?import?jsonpath#?讀入示例json數據 with?open('json示例.json',?encoding='utf-8')?as?j:demo_json?=?json.loads(j.read())#?配合JSONPath表達式提取數據 jsonpath(demo_json,?'$..steps[*].duration')

其中$..steps[*].duration就是我們用于描述數據位置規則的JSONPath語句,配合jsonpath()便可以提取出對應信息,下面我們就來學習jsonpath中支持的常用JSONPath語法:

2.2 jsonpath中的常用JSONPath語法

為了滿足日常提取數據的需求,JSONPath中設計了一系列語法規則來實現對目標值的定位,其中常用的有:

  • 「按位置選擇節點」

在jsonpath中主要有以下幾種按位置選擇節點的方式:

功能語法
根節點$
當前節點@
子節點.或[]
任意子節點*
任意后代節點..

讓我們來演示一下它們的一些用法:

#?提取所有duration鍵對應值 jsonpath(demo_json,?'$..duration') #?提取所有steps鍵的子節點對應instruction值 jsonpath(demo_json,?'$..steps.*.instruction')
  • 「索引子節點」

有些時候我們需要在選擇過程中對子節點做多選或按位置選擇操作,就可以使用到jsonpath中的相關功能:

#?多選所有steps鍵的子節點對應的instruction與action值 jsonpath(demo_json,?'$..steps.*[instruction,action]') #?選擇steps鍵的第0個子節點對應的instruction與action值 jsonpath(demo_json,?'$..steps[0][instruction,action]')#?選擇steps鍵的第1到3(不包括3)個子節點對應的instruction與action值 jsonpath(demo_json,?'$..steps[1:3][instruction,action]')#?配合@,選擇steps鍵的最后一個子節點對應的instruction與action值 jsonpath(demo_json,?'$..steps[(@.length-1)][instruction,action]')
  • 「條件篩選」

有些時候我們需要根據子節點的某些鍵值對值,對選擇的節點進行篩選,在jsonpath中支持常用的==、!=、>、<等比較運算符,以==比較符為例,這里配合@定位符從當前節點提取子節點,語法為?(@.鍵名 比較符 值):

#?找到所有steps子節點中orientation為“西”的 jsonpath(demo_json,?'$..steps[?(@.orientation?==?"西")]')

而如果想要提取所有具有指定鍵的節點,可以參考下面的例子:

#?找到所有具有polyline鍵的節點對應的polyline與road鍵對應值 jsonpath(demo_json,?'$..[?(@.polyline)][polyline,road]')

2.3 返回結果的形式

在前面的例子中,我們所有的返回結果直接就是提取到的滿足條件的結果,而jsonpath()中還提供了另一種特殊的結果返回形式,只需要設置參數result_type=None就可以改直接返回結果為返回每個結果的JSONPath表達式:

#?獲取結果的JSONPath表達式 jsonpath(demo_json,?'$..[?(@.polyline)][polyline,road]',?result_type=None)

以上介紹的均為jsonpath庫中的常規功能,可以滿足基礎的json數據提取需求,而除了jsonpath之外,還有其他具有更加豐富拓展功能的JSONPath類的第三方庫,可以幫助我們實現很多進階靈活的操作,我們將在下一篇文章中繼續討論。


以上就是本文的全部內容,歡迎在評論區與我進行討論~

推薦閱讀

Pandas處理數據太慢,來試試Polars吧!

懶人必備!只需一行代碼,就能導入所有的Python庫

絕!關于pip的15個使用小技巧

介紹10個常用的Python內置函數,99.99%的人都在用!

可能是全網最完整的 Python 操作 Excel庫總結!

總結

以上是生活随笔為你收集整理的在Python中操纵json数据的最佳方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 三级全黄视频 | 6080午夜 | 图片区偷拍区小说区 | 嫩草视频91 | 狠狠撸在线观看 | 久久精品一区二区在线观看 | 久久精品国产精品亚洲色婷婷 | 神马午夜91 | 美国做爰xxxⅹ性视频 | 亚洲男人天堂2020 | 伊人网狼人| 日本在线播放 | 视频久久 | 日本极品丰满ⅹxxxhd | 久久影院国产 | 午夜精品极品粉嫩国产尤物 | 免费看裸体网站视频 | 国产一二三级 | 99热只有| 四虎网站 | 高清乱码毛片入口 | 领导揉我胸亲奶揉下面 | 日本丰满肉感bbwbbwbbw | 国产区精品在线观看 | 男女无套免费视频网站动漫 | 欧美精产国品一二三区 | 国产在线视频网 | 欧美日韩中文在线观看 | 久久av一区二区三区漫画 | 青青草97国产精品免费观看 | 欧美激情另类 | 国产原创在线视频 | 亚洲国产免费 | 操操操网站 | 影音先锋欧美在线 | 人妻av一区二区三区 | 超碰97人人在线 | 校园春色亚洲激情 | 日产精品久久久久 | 日韩激情国产 | 国产精品影音先锋 | 激情欧美一区二区 | 欧美三根一起进三p | www成人在线 | 波多野结衣女同 | 国产精品人成 | 成人性生交大片 | 亚洲天堂手机在线观看 | 波多野结衣一区二区三区在线观看 | 自偷自拍亚洲 | 国产伦精品一区二区三区免费 | 51嘿嘿嘿国产精品伦理 | 亚洲一区二区三区在线免费观看 | 91av亚洲| 三级a做爰全过程 | 国产成人99久久亚洲综合精品 | 青草青在线视频 | 亚洲一区二区三区婷婷 | 欧美日韩中文字幕在线视频 | 亚洲一区和二区 | 欧美日韩一区二区三区69堂 | 99re8在线精品视频免费播放 | 扒开腿揉捏花蒂h | 在线观看的黄网 | 少妇人妻好深好紧精品无码 | 国产第一毛片 | 狠狠操操 | 在线天堂v | 尤果网福利视频在线观看 | 人妻久久一区二区 | 天天做天天爱夜夜爽 | 亚洲成熟女性毛茸茸 | 丰满少妇一区二区三区专区 | 欧美性猛交99久久久久99按摩 | 亚洲第五页 | 91黄色看片 | 91热精品| 啪啪网页 | 男女一进一出视频 | 不卡的日韩av | 黄色一级在线观看 | 男女午夜影院 | 韩国av在线播放 | 找个毛片看看 | 澳门免费av| www一起操 | 91精品国产闺蜜国产在线闺蜜 | 国产做爰免费观看 | 青青草这里只有精品 | 97免费在线视频 | 欧美性xxxxx 亚洲特黄一级片 | 亚洲色精品三区二区一区 | 特级毛片www | 国产精品自拍区 | 热久久91 | xxx69美国| 50一60岁老妇女毛片 | 日本精品入口免费视频 | 女大学生的家政保姆初体验 |