1. 程式人生 > >資料提取之JSON與JsonPATH

資料提取之JSON與JsonPATH

import json

json模組提供了四個功能:dumps、dump、loads、load,用於字串 和 python資料型別間進行轉換。
1 . json.loads()
把json格式字串解碼轉換成Python物件 從json到python的型別轉換對照如下:
在這裡插入圖片描述

2 . json.dumps()

實現python型別轉化為json字串,返回一個str物件 把一個Python物件編碼轉換成Json字串
從python原始型別向json型別的轉化對照如下:
在這裡插入圖片描述

3. json.dump()
將Python內建型別序列化為json物件後寫入檔案
4. json.load()
讀取檔案中json形式的字串元素 轉化成python型別

JsonPath

JsonPath 對於 JSON 來說,相當於 XPath 對於 XML。
安裝方法:pip install jsonpath

JsonPath與XPath語法對比:
Json結構清晰,可讀性高,複雜度低,非常容易匹配,下表中對應了XPath的用法
在這裡插入圖片描述
注意:
json.loads() 是把 Json格式字串解碼轉換成Python物件,如果在json.loads的時候出錯,要注意被解碼的Json字元的編碼,如果傳入的字串的編碼不是UTF-8的話,需要指定字元編碼的引數encoding
如:

dataDict = json.loads(jsonStrGBK);

jsonStrGBK是JSON字串,假設其編碼本身是非UTF-8的話而是GBK 的,那麼上述程式碼會導致出錯,改為對應的:

 dataDict = json.loads(jsonStrGBK, encoding="GBK");

字串編碼轉換 :

任何平臺的任何編碼都能和Unicode互相轉換
UTF-8 與 GBK 互相轉換,那就先把UTF-8轉換成Unicode,再從Unicode轉換成GBK,反之同理

# 這是一個 UTF-8 編碼的字串
utf8Str = "你好地球"

# 1. 將 UTF-8 編碼的字串 轉換成 Unicode 編碼
unicodeStr = utf8Str.decode("UTF-8")

# 2. 再將 Unicode 編碼格式字串 轉換成 GBK 編碼
gbkData = unicodeStr.encode("GBK")

# 1. 再將 GBK 編碼格式字串 轉化成 Unicode
unicodeStr = gbkData.decode("gbk")

# 2. 再將 Unicode 編碼格式字串轉換成 UTF-8
utf8Str = unicodeStr.encode("UTF-8")

decode的作用是將其他編碼的字串轉換成 Unicode 編碼

encode的作用是將 Unicode 編碼轉換成其他編碼的字串

總之一句話:UTF-8是對Unicode字符集進行編碼的一種編碼方式