Python-json模塊
阿新 • • 發佈:2018-04-17
sci 實現 pwd pytho UC inpu with 寫入文件 作文件
json串是任何語言都可以識別的,因此json模塊是一個重要的模塊。
json串實際上就是字符串。
1、json格式
json格式如下,必須使用雙引號。
2、讀json文件
讀取json文件後,數據類型是字符串類型。可以引入json模塊,用json.loads或者json.load將其變為字典類型。
例:有一個文件products.json。
(1)用json.loads()
用read將文件讀出來,然後把讀出來的數據用json.loads()轉換為字典類型。
通過運行結果可以看出,讀出啦的res格式是字符串,json.loads()將其轉化為字典格式。
(2)用json.load()
可以看到json.load()可以直接傳文件對象,它會幫助讀文件,並且轉化為字典格式。
3、寫入json文件
同樣的,導入json模塊。可以用json.dumps()或者json.dump()將其轉化為json格式,寫入文件。
(1)json.dumps()
首先用json.dumps()將字典轉化為json格式,存入user_info,然後將user_info寫入文件。
其中,ensure_ascii=False 是為了保證中文不被編碼,能夠正常顯示。indent=4指的是縮進是4。
運行之後,user_info.json文件內容為:
(2)json.dump()
json.dump()可以直接操作文件對象,實現的功能一樣,能夠直接將字典格式轉化為json格式,並且寫入文件。
4、小練習
學生信息存在json文件裏,要求實現學生的註冊和刪除。
stus_info.json文件內容為為:
import json def op_data(filename,content=None): if content:#如果有內容,將內容寫入json文件 with open(filename,‘w‘,encoding=‘utf-8‘) as fw: json.dump(content, fw, ensure_ascii=False, indent=4) else:#如果content為None,則讀取json文件 with open(filename,encoding=‘utf-8‘) as fr: return json.load(fr) FILE_NAME = ‘stus_info.json‘#定義常量 all_stus = op_data(FILE_NAME) for i in range(3): choice = input(‘1註冊,2刪除,請輸入:‘) if choice==‘1‘: username = input(‘usenrame:‘) pwd = input(‘pwd:‘) if username not in all_stus: all_stus[username]=pwd op_data(FILE_NAME,all_stus) print(‘恭喜,%s註冊成功!‘%username) elif choice=="2": username = input(‘usenrame:‘) all_stus.pop(username) op_data(FILE_NAME, all_stus) print(‘%s刪除成功!‘%username) else: print(‘輸入錯誤,請重新輸入‘)
Python-json模塊