python中json檔案讀寫
阿新 • • 發佈:2018-11-25
下面介紹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的相關操作!
希望對大家有幫助!