用 Python 將 JSON 寫入檔案
JSON 是一種輕量級且人類可讀的檔案格式,在行業中大量使用。JSON 代表 JavaScript Object Notation
。顧名思義,JSON 在 Web 開發人員中非常流行,並且在 Web 應用程式中大量使用以從伺服器或其他應用程式傳送和檢索資料。
Python 隨附了許多內建的軟體包或模組,並通過 Internet 提供了許多外部模組供我們使用。有趣的是,它還具有一個內建模組 json
,用於處理 JSON 資料。
在 Python 中,可以用兩種方式表示 JSON。首先,作為字串。JSON 字串如下所示。
jsonString = '{ "name": "DelftStack", "email": "DelftStack@domain.com", "age": 20, "country": "Netherlands", "city": "Delft"}'
在將 JSON 表示為字串時,請確保僅使用雙引號(""
)來包裝鍵和字串值。JSON 不支援單引號,如果使用單引號,則會引發錯誤。
第二種方法是使用 Python 物件或俗稱的 Python 字典。它具有與 JSON 類似的語法。
以 Python 字典的形式表示的 JSON 看起來像這樣。
jsonObject = {
"name": "DelftStack",
"email": "DelftStack@domain.com",
"age": 20,
"country": "Netherlands",
"city": "Delft"
}
同樣,請確保僅使用雙引號。
使用 Python 中的 json
模組將 JSON 寫入檔案
假設你有一個以字串形式儲存 JSON 的變數。因此,要將其寫入 JSON 檔案,你可以使用以下程式碼。
import json
fileName = "my-data.json"
jsonString = '{ "name": "DelftStack", "email": "DelftStack@domain.com", "age": 20, "country": "Netherlands", "city": "Delft"}'
jsonString = json.loads(jsonString)
file = open(fileName, "w")
json.dump(jsonString, file)
file.close()
首先,我們匯入了 json
模組。然後,我們將 JSON 檔名和 JSON 字串本身儲存在兩個變數中。然後,我們將以在寫入
模式下選擇的名稱建立並開啟一個新檔案。
然後,我們使用 json
模組中的 loads
函式將 JSON 字串轉換為 python 字典以將其寫入檔案。該函式接受有效的 JSON 字串,並將其轉換為 Python 字典。
請注意,如果為此函式提供了無效的字串,則會引發
json.decoder.JSONDecodeError
錯誤。因此,請確保你輸入正確的字串,或者可以使用try-except-finally
塊進行錯誤處理。
接下來,我們使用 json
模組提供給我們的 dump()
方法。此方法接受 python 字典和檔案描述符作為其引數,並將字典的資料寫入檔案。
當且僅當檔案未以二進位制格式開啟時,才可以使用 dump()
方法,即,"wb"
和"rb"
將不起作用並導致 TypeError
。
最後,我們關閉檔案,程式退出。根據你在程式中定義的名稱的 JSON 檔案將在當前目錄中建立。
如果工作目錄中存在具有相同名稱和相同副檔名的檔案,則該檔案的內容將被覆蓋。
現在,假設你希望將 Python 物件或 Python 字典寫入 JSON 檔案。在這種情況下,請參考以下程式碼段。
import json
fileName = "my-data.json"
jsonObject = {
"name": "DelftStack",
"email": "DelftStack@domain.com",
"age": 20,
"country": "Netherlands",
"city": "Delft"
}
file = open(fileName, "w")
json.dump(jsonObject, file)
file.close()
在這種情況下,我們已經有了 Python 物件或字典,並且如上所述,dump()
接受字典作為引數並將其寫入檔案描述符。因此,我們以寫入模式開啟檔案,使用 dump()
方法將資料寫入檔案,然後關閉檔案。