Python基础教程:json中load和loads区别
生活随笔
收集整理的這篇文章主要介紹了
Python基础教程:json中load和loads区别
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
相同點
- dump 和 dumps 都實現(xiàn)了序列化
- load 和 loads 都實現(xiàn)反序列化
變量從內(nèi)存中變成可存儲或傳輸?shù)倪^程稱之為序列化
序列化是將對象狀態(tài)轉(zhuǎn)化為可保存或可傳輸格式的過程。
變量內(nèi)容從序列化的對象重新讀到內(nèi)存里稱之為反序列化
反序列化是流轉(zhuǎn)換為對象。
區(qū)別
1.load 和 loads (反序列化)
load:針對文件句柄,將json格式的字符轉(zhuǎn)換為dict,從文件中讀取 (將string轉(zhuǎn)換為dict)
a_json = json.load(open('demo.json','r'))loads:針對內(nèi)存對象,將string轉(zhuǎn)換為dict (將string轉(zhuǎn)換為dict)
a = json.loads('{'a':'1111','b':'2222'}')2.dump 和 dumps(序列化)
dump:將dict類型轉(zhuǎn)換為json字符串格式,寫入到文件 (易存儲)
a_dict = {'a':'1111','b':'2222'} json.dump(a_dict, open('demo.json', 'w')dumps:將dict轉(zhuǎn)換為string (易傳輸)
a_dict = {'a':'1111','b':'2222'} a_str = json.dumps(a_dict)總結(jié)
根據(jù)序列化和反序列的特性
- loads: 是將string轉(zhuǎn)換為dict
- dumps: 是將dict轉(zhuǎn)換為string
- load: 是將里json格式字符串轉(zhuǎn)化為dict,讀取文件
- dump: 是將dict類型轉(zhuǎn)換為json格式字符串,存入文件
JSON進階
序列化
# 使用class對象的__dict__方法 class Student(object):def __init__(self, name, age, score):self.name = nameself.age = ageself.score = score import json s = Student('Bob', 20, 88) print(json.dumps(s, default=lambda obj: obj.__dict__))反序列化
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' def dict2student(d):return Student(d['name'], d['age'], d['score'])json_str = '{"age": 20, "score": 88, "name": "Bob"}' print(json.loads(json_str, object_hook=dict2student))python中的序列化和反序列化
Python提供兩個模塊來實現(xiàn)序列化:cPickle和pickle。這兩個模塊功能是一樣的,區(qū)別在于cPickle是C語言寫的,速度快,pickle是純Python寫的,速度慢。
- 變量從內(nèi)存中變成可存儲或傳輸?shù)倪^程稱之為序列化,在Python中叫pickling
- 變量內(nèi)容從序列化的對象重新讀到內(nèi)存里稱之為反序列化,即unpickling
1.將內(nèi)存對象存取到磁盤
a = dict(a=1, b=2, c=3) pickle.dumps(a) # 將對象序列化為str然后存入文件a = dict(a=1, b=2, c=3) pickle.dump(a, open('a.txt', 'wb')) # 使用dump直接把對象序列化為file-like Object,注意是二進制存儲2.從磁盤讀取到內(nèi)存對象
pickle.load(open('a.txt', 'rb')) #從file-like Object中直接反序列化出對象總結(jié)
以上是生活随笔為你收集整理的Python基础教程:json中load和loads区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python基础教程:list深拷贝和浅
- 下一篇: 使用pip安装python库的几种方式,