1. 程式人生 > >《Python程式設計從入門到實踐》記錄之json模組(資料儲存)

《Python程式設計從入門到實踐》記錄之json模組(資料儲存)

模組json讓你能夠將簡單的Python資料結構轉儲到檔案中, 並在程式再次執行時載入該檔案中的資料。

你還可以使用json在Python程式之間分享資料。更重要的是,JSON資料格式並非Python專用的,這讓你能夠將以JSON格式儲存的資料與使用其他程式語言的人分享。這是一種輕便格式,很有用,也易於學習。

1、json.dump()和json.load()

函式json.dump() 用來將Python資料結構儲存到檔案中。

函式json.dump() 接受兩個實參要儲存的資料以及可用於儲存資料的檔案物件

下邊例子是使用json.dump()函式將一組數字列表儲存到檔案中:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import json

numbers = [2, 3, 5, 7, 11, 13]

filename = 'numbers.json'

with open(filename, 'w') as f_obj:
    json.dump(numbers, f_obj)

執行結果:形成一個numbers名字的JSON檔案,檔案內容就是數字列表內的內容。


函式json.load()將列表讀取到記憶體中。下邊例子是使用json.load()將儲存到檔案的類表讀取到記憶體中:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import json

filename = 'numbers.json'

with open(filename) as f_obj:
    numbers = json.load(f_obj)

print(numbers)

執行結果:


下邊例子結合兩個函式儲存使用者資料。首次執行時,提示輸入名字並記住使用者名稱,再次執行時,可載入資料。

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import json
# 如果以前儲存了使用者名稱, 就載入它
# 否則, 就提示使用者輸入使用者名稱並存儲它
filename = 'username.json'
try:
    with open(filename) as f_obj:
        username = json.load(f_obj)

except FileNotFoundError:
    username = input("What is your name? ")
    with open(filename, 'w') as f_obj:
        json.dump(username, f_obj)
        print("We'll remember you when you come back, " + username + "!")

else:
    print("Welcome back, " + username + "!")

程式首次執行結果:

不是首次執行,輸出結果:

這裡使用了try-except-elseji結構,如有不懂,請參考《Python程式設計從入門到實踐》記錄之檔案異常(try-except-else程式碼塊)