亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python json中load和loads區別有哪些

發布時間:2021-11-06 13:28:42 來源:億速云 閱讀:336 作者:小新 欄目:開發技術

小編給大家分享一下Python json中load和loads區別有哪些,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

一、相同點

  • dump dumps 都實現了序列化

  • load loads 都實現反序列化

變量從內存中變成可存儲或傳輸的過程稱之為序列化序列化是將對象狀態轉化為可保存或可傳輸格式的過程。

變量內容從序列化的對象重新讀到內存里稱之為反序列化反序列化是流轉換為對象。

二、區別

1.load 和 loads (反序列化)

load:針對文件句柄,將json格式的字符轉換為dict,從文件中讀取 (將string轉換為dict)

a_json = json.load(open('demo.json','r'))

loads:針對內存對象,將string轉換為dict (將string轉換為dict)

a = json.loads('{'a':'1111','b':'2222'}')

2.dump 和 dumps(序列化)

dump:將dict類型轉換為json字符串格式,寫入到文件 (易存儲)

a_dict = {'a':'1111','b':'2222'}
json.dump(a_dict, open('demo.json', 'w')

dumps:將dict轉換為string (易傳輸)

a_dict = {'a':'1111','b':'2222'}
a_str = json.dumps(a_dict)

總結:

根據序列化和反序列的特性

  • loads: 是將string轉換為dict

  • dumps: 是將dict轉換為string

  • load: 是將里json格式字符串轉化為dict,讀取文件

  • dump: 是將dict類型轉換為json格式字符串,存入文件

三、JSON進階

1.序列化

# 使用class對象的__dict__方法
class Student(object):
    def __init__(self, name, age, score):
        self.name = name
        self.age = age
        self.score = score
import json
s = Student('Bob', 20, 88)
print(json.dumps(s, default=lambda obj: obj.__dict__))

2.反序列化

#Python學習交流群:531509025

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提供兩個模塊來實現序列化:cPicklepickle。這兩個模塊功能是一樣的,區別在于cPickle是C語言寫的,速度快,pickle是純Python寫的,速度慢。

  • 變量從內存中變成可存儲或傳輸的過程稱之為序列化,在Python中叫pickling

  • 變量內容從序列化的對象重新讀到內存里稱之為反序列化,即unpickling

try:
    import cPickle as pickle
except ImportError:
    import pickle

1.將內存對象存取到磁盤

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.從磁盤讀取到內存對象

pickle.load(open('a.txt', 'rb'))    #從file-like Object中直接反序列化出對象

看完了這篇文章,相信你對“Python json中load和loads區別有哪些”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广南县| 贺兰县| 迁西县| 黔江区| 康乐县| 高州市| 越西县| 武功县| 佛教| 荔浦县| 阳泉市| 修水县| 洮南市| 福鼎市| 灌云县| 卓尼县| 孟州市| 正安县| 兴城市| 泗水县| 安福县| 抚顺县| 抚州市| 赤壁市| 辽宁省| 松原市| 翁牛特旗| 共和县| 类乌齐县| 航空| 隆德县| 遵义市| 固安县| 海伦市| 曲麻莱县| 库车县| 霍山县| 甘孜| 资溪县| 平果县| 昌江|