1. 程式人生 > 程式設計 >python的json中方法及jsonpath模組用法分析

python的json中方法及jsonpath模組用法分析

本文例項講述了python的json中方法及jsonpath模組用法。分享給大家供大家參考,具體如下:

什麼是json

JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式,它使得人們很容易的進行閱讀和編寫。同時也方便了機器進行解析和生成。適用於進行資料互動的場景,比如網站前臺與後臺之間的資料互動。

json模組中方法的學習

其中類檔案物件的理解:

具有read()或者write()方法的物件就是類檔案物件,比如f = open(“a.txt”,”r”) f就是類檔案物件

具體使用方法:

#json.dumps 實現python型別轉化為json字串
#indent實現換行和空格
#ensure_ascii=False實現讓中文寫入的時候保持為中文
json_str = json.dumps(mydict,indent=2,ensure_ascii=False)
#json.loads 實現json字串轉化為python的資料型別
my_dict = json.loads(json_str)
#json.dump 實現把python型別寫入類檔案物件
with open("temp.txt","w") as f:
  json.dump(mydict,f,ensure_ascii=False,indent=2)
# json.load 實現類檔案物件中的json字串轉化為python型別
with open("temp.txt","r") as f:
  my_dict = json.load(f)

jsonpath模組

1. jsonpath介紹

用來解析多層巢狀的json資料;JsonPath 是一種資訊抽取類庫,是從JSON文件中抽取指定資訊的工具,提供多種語言實現版本,包括:Javascript,Python, PHP 和 Java。

2. JsonPath 對於 JSON 來說,相當於 XPath 對於 XML。

安裝方法:pip install jsonpath

官方文件:http://goessner.net/articles/JsonPath

3. JsonPath與XPath語法對比:

Json結構清晰,可讀性高,複雜度低,非常容易匹配,下表中對應了XPath的用法。

.or[]..//*@
[]?()()
XPath JSONPath 描述
/ $ 根節點
. @ 現行節點
取子節點
n/a 取父節點,Jsonpath未支援
.. 就是不管位置,選擇所有符合條件的條件
* 匹配所有元素節點
n/a 根據屬性訪問,Json不支援,因為Json是個Key-value遞迴結構,不需要屬性訪問。
[] 迭代器標示(可以在裡邊做簡單的迭代操作,如陣列下標,根據內容選值等)
| [,] 支援迭代器中做多選。
支援過濾操作.
n/a () 支援表示式計算
n/a 分組,JsonPath不支援

PS:這裡再為大家推薦幾款比較實用的json線上工具供大家參考使用:

線上JSON程式碼檢驗、檢驗、美化、格式化工具:
http://tools.jb51.net/code/json

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

線上XML/JSON互相轉換工具:
http://tools.jb51.net/code/xmljson

json程式碼線上格式化/美化/壓縮/編輯/轉換工具:
http://tools.jb51.net/code/jsoncodeformat

線上json壓縮/轉義工具:
http://tools.jb51.net/code/json_yasuo_trans

更多Python相關內容感興趣的讀者可檢視本站專題:《Python操作json技巧總結》、《Python編碼操作技巧總結》、《Python資料結構與演算法教程》、《Python函式使用技巧總結》、《Python字串操作技巧彙總》、《Python入門與進階經典教程》及《Python檔案與目錄操作技巧彙總》

希望本文所述對大家Python程式設計有所幫助。