1. 程式人生 > >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的用法。

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