中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

澎湖县| 富蕴县| 丰镇市| 隆回县| 六盘水市| 安乡县| 大理市| 确山县| 牡丹江市| 永济市| 峨山| 固始县| 巧家县| 泗阳县| 蓬安县| 石楼县| 内黄县| 威远县| 舞钢市| 祁阳县| 宣汉县| 西贡区| 湾仔区| 渭源县| 天全县| 云阳县| 桂阳县| 仙居县| 桦南县| 丰镇市| 黄平县| 冷水江市| 鹰潭市| 横峰县| 阳高县| 板桥市| 凤庆县| 金乡县| 武平县| 扶风县| 图们市|