溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python?json模塊有哪些常用方法

發(fā)布時間:2023-03-22 11:18:49 來源:億速云 閱讀:92 作者:iii 欄目:開發(fā)技術

本文小編為大家詳細介紹“Python json模塊有哪些常用方法”,內容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“Python json模塊有哪些常用方法”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,遵循歐洲計算機協會制定的 JavaScript 規(guī)范(簡稱 ECMAScript)。

JSON 易于人閱讀和編寫,同時也易于機器解析和生成,能夠有效的提升網信息的傳輸效率,因此它常被作為網絡、程序之間傳遞信息的標準語言,比如客戶端與服務器之間信息交互就是以 JSON 格式傳遞的。

簡單地說,JSON 可以將 JavaScript 對象表示的一組數據轉換為字符串格式,以便于在網絡、程序間傳輸這個字符串。并且在需要的時候,還可以將它轉換為編程語言所支持的數據格式。本節(jié)主要介紹如何實現 JSON 數據與 Python 數據類型間的相互轉換。

Python 語言內置了專門處理 JOSN 數據的模塊 —— jons 模塊,通過該模塊就可以完成 JSON 與 Python 兩種數據格式的相互轉換。

jons.loads()

該方法可以將 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年'};數據類型:<class 'dict'>

注意:上述示例中 JSON 字符串看上去和 Python 字典非常相似,但是其本質不同,JOSN 是字符串類型,而 Python 字典是 dict 類型。

json.dump()

它可以將 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)

輸出結果如下:

轉換之后的數據類型為: <class 'str'>
{"website": "CSDN", "url": "www.CSDN.net"}

最后對上述方法做簡單地總結,如下表所示:

JSON方法總結

方法作用
json.dumps()將 Python 對象轉換成 JSON 字符串。
json.loads()將 JSON 字符串轉換成 Python 對象。
json.dump()將 Python 中的對象轉化成 JSON 字符串儲存到文件中。
json.load()將文件中的 JSON 字符串轉化成 Python 對象提取出來。

綜上所述 json.load() 與 json.dump() 操作的是文件流對象,實現了 json 文件的讀寫操作,而 json.loads() 與 json.dumps() 操作的是 Python 對象或者 JOSN 字符串。

讀到這里,這篇“Python json模塊有哪些常用方法”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI