JSON(JavaScript Object Notation)是一種輕量級的資料交換格式,遵循歐洲電腦協會制定的 JavaScript 規格(簡稱 ECMAScript)。
JSON 易於人閱讀和編寫,同時也易於機器解析和生成,能夠有效的提升網信息的傳輸效率,因此它常被作為網絡、程序之間傳遞信息的標準語言,比如客戶端與伺服器之間的訊息互動就是以JSON 格式傳遞。
簡單地說,JSON 可以將 JavaScript 物件表示的一組資料轉換為字串格式,以便在網路、程式間傳輸這個字串。並且在需要的時候,還可以將它轉換為程式語言所支援的資料格式。本節主要介紹如何實作 JSON 資料與 Python 資料型別間的相互轉換。
Python 語言內建了專門處理 JOSN 資料的模組 —— jons 模組,透過該模組就可以完成 JSON 與 Python 兩種資料格式的相互轉換。
此方法可以將json 格式的字串轉換成Python 物件(例如列表、字典、元組、整型以及浮點型),其中最常用的是轉換為字典類型。範例如下:
# coding:utf8 import json #JOSN字符串 website_info='{"name" : "CSDN","PV" : "2000万","UV" : "800万","create_time" : "1999年"}' py_dict=json.loads(website_info) print("python字典数据格式:%s;数据类型:%s"% (py_dict,type(py_dict)))
輸出結果:
python字典資料格式:{'name': 'CSDN', 'PV': '2000萬', 'UV': ' 800萬', 'create_time': '1999年'};資料型態:
注意:上述範例中JSON 字串看上去和Python 字典非常相似,但其本質不同,JOSN 是字串類型,而Python 字典是dict 類型。
它可以將Python 物件(字典、列表等)轉換為json 字串,並將轉換後的資料寫入到json 格式的檔案中,因此此方法必須操作文件流物件。例如使用爬蟲程式完成資料抓取後,有時需要將資料儲存為json 格式,此時就用到了json.dump() 方法,語法格式如下:
json.dump(object,f,inden=0,ensure_ascii=False)
參數說明如下:
object:Python 資料對象,例如字典,列表等
#f:檔案流對象,即檔案句柄。
indent:格式化儲存數據,讓 JSON 字串更容易閱讀。
ensure_ascii:是否使用 ascii 編碼,當資料中出現中文的時候,需要將其設為 False。
範例範例如下:
import json ditc_info={"name" : "CSDN","PV" : "2000万","UV" : "800万","create_time" : "1999年"} with open("web.josn","a") as f: json.dump(ditc_info,f,ensure_ascii=False)
開啟web.json 文件,其內容如下所示:
{ "name": "CSDN", "PV": "2000万", "UV": "800万", "create_time": "1999年" }
您也可以將Python 清單轉換成JSON 字串,並儲存至json 文件中,如下所示:
import json item_list = [] item = {'website': 'CSDN', 'url': "www.CSDN.net"} for k,v in item.items(): item_list.append(v) with open('info_web.json', 'a') as f: json.dump(item_list, f, ensure_ascii=False)
開啟info_web.json 文件,其內容如下:
##["CSDN", "www.CSDN .net"]json.load()該方法用於操作檔案流對象,不過它與dump() 恰好相反,它表示從 json 檔案中讀取JSON 字串,並將讀取內容轉換為Python 物件。使用範例如下:
import json site = {'name':'CSDN',"url":"www.CSDN.net"} filename = 'website.json' with open (filename,'w') as f: json.dump(site,f,ensure_ascii=False) with open (filename,'r') as f: print(json.load(f))
{'name': 'CSDN', 'url': 'www.CSDN.net'}json.dumps()此方法可以將Python 物件轉換成JSON 字串。範例如下:
import json #python字典 item = {'website': 'CSDN', 'rank': 1} # json.dumps之后 item = json.dumps(item,ensure_ascii=False) print('转换之后的数据类型为:',type(item)) print(item)
轉換之後的資料型別為:最後對上述方法做簡單總結,如下表所示:JSON方法總結{"website": "CSDN", "url": "www.CSDN.net"}
作用 | |
---|---|
將Python 物件轉換成JSON 字串。 | |
將 JSON 字串轉換成 Python 物件。 | |
將 Python 中的物件轉換成 JSON 字串儲存到檔案中。 | |
將檔案中的 JSON 字串轉換成 Python 物件提取出來。 |
以上是Python json模組有哪些常用方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!