Python json模組有哪些常用方法

PHPz
發布: 2023-04-25 08:10:09
轉載
969 人瀏覽過

JSON(JavaScript Object Notation)是一種輕量級的資料交換格式,遵循歐洲電腦協會制定的 JavaScript 規格(簡稱 ECMAScript)。

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

簡單地說,JSON 可以將 JavaScript 物件表示的一組資料轉換為字串格式,以便在網路、程式間傳輸這個字串。並且在需要的時候,還可以將它轉換為程式語言所支援的資料格式。本節主要介紹如何實作 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年'};資料型態:

注意:上述範例中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)
登入後複製
輸出結果如下:

轉換之後的資料型別為:

{"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模組有哪些常用方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!