1. 程式人生 > >Python-json模塊

Python-json模塊

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模塊