《Python程式設計從入門到實踐》記錄之json模組(資料儲存)
阿新 • • 發佈:2018-11-30
模組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程式碼塊)