91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

叙永县| 交城县| 筠连县| 霸州市| 柳河县| 元江| 酒泉市| 宾阳县| 福安市| 岳普湖县| 花垣县| 蒙自县| 曲周县| 繁昌县| 盈江县| 吉木萨尔县| 罗山县| 新田县| 咸宁市| 南部县| 博湖县| 策勒县| 新巴尔虎右旗| 区。| 丁青县| 衡阳县| 化州市| 兰考县| 天津市| 沙河市| 南木林县| 孝感市| 固镇县| 屏东县| 遂溪县| 麻城市| 海林市| 应城市| 略阳县| 洛宁县| 兴仁县|