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