python-json序列化和反序列化


json序列化:json.dumps()用於將dict類型的數據轉成json字符串
  在序列化時,中文漢字被轉換為unicode編碼,在dumps函數中添加參數ensure_ascii=False可解決;dumps的indent參考可以調整顯示格式,即縮進,一般設置為2。鍵值數據不能用雙引號,只能用單引號(如果是雙引號,可以用eval())。
json反序列化:json.loads()用於將json字符串轉成dict類型的數據

 

import json
#json.dumps()用於將dict類型的數據轉成json字符串
#json.loads()用於將json字符串轉成dict類型的數據

dic = {'age': 23, 'job': 'student'}
print(type(dic),dic)
# out: <class 'dict'> {'age': 23, 'job': 'student'}

dic_str = json.dumps(dic)
print(type(dic_str), dic_str)
# out: <class 'str'> {"age": 23, "job": "student"}

dic_obj = json.loads(dic_str)
print(type(dic_obj), dic_obj)
# out: <class 'dict'> {'age': 23, 'job': 'student'}



#eval()字符串轉字典,列表
dic= "{'age': 23, 'job': 'student'}"
print(type(dic),dic)
# out: <class 'str'> {'age': 23, 'job': 'student'}
print(type(eval(dic)),eval(dic))
# out: <class 'dict'> {'age': 23, 'job': 'student'}

lis = "['age','job']"
print(type(lis),lis)
# out: <class 'str'> ['age','job']
print(type(eval(lis)),eval(lis))
# out: <class 'list'> ['age', 'job']



#dump: 將dict類型數據寫入json文件中
#load: 讀取數據以dict類型返回
with open("../file/json/record.json","w") as f: 
    json.dump(dic_obj,f)

with open("../file/json/record.json",'r') as f:
    dic_obj = json.load(f)
    print(type(dic_obj), dic_obj)   # out: <class 'dict'> {'age': 23, 'job': 'student'}
    print(dic_obj["age"])           # out: 23


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM