一、基于json模塊的存儲、讀取數(shù)據(jù) names_writer.py 1 import json2 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模塊,再創(chuàng)建一個名字列表,第5行我們指定了要將該列表存儲到其中的文件的名稱。通常使用擴展名.json來指出文件存儲的數(shù)據(jù)為json格式。第6行我們以寫入模式打開文件,第7行我們使用函數(shù)json.dump()將名字列表存儲到文件names.json 中。此程序在執(zhí)行之后控制臺沒有打印任何東西,其實我們也可以在后面打印一句類似成功的提示語句,但此處我就省略了。 我們看下names_writer.py 所在文件夾下的names.json文件(tips:如果文件夾下不存在此文件會自動創(chuàng)建并寫入數(shù)據(jù)),names.json 中的內容如下: ['joker', 'joe', 'nacy', 'timi'] 下面編寫讀取此json文件的程序: names_reader.py 1 import json2 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行,我們使用函數(shù)json.load() 來讀取names.json 中的信息,并將其存儲到變量names中,最后將其打印。打印結果與我們存儲時是一樣的。json文件你也可以共享給其他人,其他人就可以讀取其中的數(shù)據(jù)了,這是一種程序間共享數(shù)據(jù)的簡單方式。 我們來用以上的知識解決下具體的問題。 問題:編寫一個程序,提示用戶輸入他喜歡的水果,并使用json.dump() 將這個水果名存儲到文件中。再編寫一個程序,從文件中讀取這個值,并打印消息 “I know your favorite fruit ! It's _____ .”。 favorite.py 1 import json2 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 json2 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) 控制臺打印如下: 可以看到程序是可以正常運行的。說明我們編寫的程序按正常操作運行是沒有問題的。下一篇,我們重構這個例子,使之更完善。
|
|