1. 程式人生 > >python中json檔案讀寫

python中json檔案讀寫

下面介紹json檔案的相關操作

我瞭解到Json,全名 JavaScript Object Notation,是一種輕量級的資料交換格式。Json最廣泛的應用是作為AJAX中web伺服器和客戶端的通訊的資料格式。現在也常用於http請求中,所以對json的各種學習,是自然而然的事情。

一. dumps 和 dump:
dumps和dump 序列化方法
dumps只完成了序列化為str,
dump必須傳檔案描述符,將序列化的str儲存到檔案中
下面使用實際的例子依次介紹:

import json

key={ "people": [
{ "Name": "Brett", "名字":"McLaughlin", '1': 1 },
{ "Name": "Jason", "名字":"Hunter", '2': 1},
{ "Name": "Elliotte", "名字":"Harold", '3': 1 }
]}
print(json.dumps(key,sort_keys=True,indent =4,ensure_ascii=False))

輸出效果如下:

{
    "people": [
        {
            "1": 1,
            "Name": "Brett",
            "名字": "McLaughlin"
        },
        {
            "2": 1,
            "Name": "Jason",
            "名字": "Hunter"
        },
        {
            "3": 1,
            "Name": "Elliotte",
            "名字": "Harold"
        }
    ]
}

非常簡便的將所需要的資料流暢的儲存下來了,下面我們介紹相關的引數:
(1)indent=4:縮排,python中預設縮排是4個,前端和css預設是2個
(2)sort_keys=True/False:以key為標準,按key的a-z字母排序
(3)separators=(‘,’,‘:’):減少空格,增加傳輸速度,引數是要保留的標點符號,json只保留 逗號和冒號就行。
下面我們將其儲存在json的檔案中:

with open("E:\\測試.json", "w+",encoding='utf-8_sig')as f:
    json.dump(key,f,sort_keys=True,indent =4,ensure_ascii=False)

顯示結果為:
在這裡插入圖片描述
如上即為儲存完成的資料

二. loads 和 load
loads和load 反序列化方法
loads 只完成了反序列化,
load 只接收檔案描述符,完成了讀取檔案和反序列化
同樣用上述例子介紹:

key_1=json.dumps(key,sort_keys=True,indent =4,ensure_ascii=False)
print(json.loads(key_1))

輸出為:

{'people': [{'1': 1, 'Name': 'Brett', '名字': 'McLaughlin'}, {'2': 1, 'Name': 'Jason', '名字': 'Hunter'}, {'3': 1, 'Name': 'Elliotte', '名字': 'Harold'}]}

即將其反輸出
下面讀取json檔案也是一樣的:

with open("E:\\測試.json", "r+",encoding='utf-8_sig')as f:
    data=json.load(f)
print(data)

即可讀取成功
下面將所有程式碼寫入

import json

key={ "people": [
{ "Name": "Brett", "名字":"McLaughlin", '1': 1 },
{ "Name": "Jason", "名字":"Hunter", '2': 1},
{ "Name": "Elliotte", "名字":"Harold", '3': 1 }
]}
print(json.dumps(key,sort_keys=True,indent =4,ensure_ascii=False))

with open("E:\\測試.json", "w+",encoding='utf-8_sig')as f:
    json.dump(key,f,sort_keys=True,indent =4,ensure_ascii=False)
key_1=json.dumps(key,sort_keys=True,indent =4,ensure_ascii=False)
print(json.loads(key_1))
with open("E:\\測試.json", "r+",encoding='utf-8_sig')as f:
    data=json.load(f)
print(data)

輸出為:
在這裡插入圖片描述
上述為json的相關操作!
希望對大家有幫助!