一、基於json模塊的存儲、讀取數據
names_writer.py
1 import json 2 3 names = ['joker','joe','nacy','timi'] 4 5 filename='names.json' 6 with open(filename,'w') as file_obj: 7 json.dump(names,file_obj)
解釋:我們先導入json模塊,再創建一個名字列表,第5行我們指定了要將該列表存儲到其中的文件的名稱。通常使用擴展名.json來指出文件存儲的數據為json格式。第6行我們以寫入模式打開文件,第7行我們使用函數json.dump()將名字列表存儲到文件names.json 中。此程序在執行之后控制台沒有打印任何東西,其實我們也可以在后面打印一句類似成功的提示語句,但此處我就省略了。
我們看下names_writer.py 所在文件夾下的names.json文件(tips:如果文件夾下不存在此文件會自動創建並寫入數據),names.json 中的內容如下:
["joker", "joe", "nacy", "timi"]
下面編寫讀取此json文件的程序:
names_reader.py
1 import json 2 3 4 5 filename='names.json' 6 with open(filename) as file_obj: 7 names = json.load(file_obj) 8 9 print(names)
控制台打印如下:
解釋:讀取操作,同樣需要導入json模塊,第6行代碼我們使用讀取模式打開文件,第7行,我們使用函數json.load() 來讀取names.json 中的信息,並將其存儲到變量names中,最后將其打印。打印結果與我們存儲時是一樣的。json文件你也可以共享給其他人,其他人就可以讀取其中的數據了,這是一種程序間共享數據的簡單方式。
我們來用以上的知識解決下具體的問題。
問題:編寫一個程序,提示用戶輸入他喜歡的水果,並使用json.dump() 將這個水果名存儲到文件中。再編寫一個程序,從文件中讀取這個值,並打印消息 “I know your favorite fruit ! It's _____ .”。
favorite.py
1 import json 2 3 filename = "favorite_fruit.json" 4 5 fruit = input( "What is your favorite fruit?") 6 with open(filename,'w') as file_obj: 7 json.dump(fruit,file_obj)
控制台打印如下:
reader_favorite.py
1 import json 2 3 file_name = "favorite_fruit.json" 4 with open(file_name) as file_obj: 5 fruit = json.load(file_obj) 6 7 print("I know your favorite fruit ! It's " + fruit)
控制台打印如下:
可以看到程序是可以正常運行的。說明我們編寫的程序按正常操作運行是沒有問題的。下一篇,我們重構這個例子,使之更完善。
走入社會之后,什么都可以先不學,但一定要學會理財,並且將之變成一個終身習慣。