激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 關于 Python json中load和loads區別

關于 Python json中load和loads區別

2022-02-25 00:25小小程序員ol Python

這篇文章主要介紹了關于 Python json中load和loads區別,文章也有簡單的說明它們之間的相同點,然后詳細介紹不同點,需要的朋友可以參考一下文章的具體內容

一、相同點

  • dump dumps 都實現了序列化
  • load loads 都實現反序列化

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

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

二、區別

1.load 和 loads (反序列化)

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

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

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

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

2.dump 和 dumps(序列化)

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

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

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

?
1
2
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.序列化

?
1
2
3
4
5
6
7
8
9
# 使用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.反序列化

?
1
2
3
4
5
6
7
#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
?
1
2
3
4
try:
    import cPickle as pickle
except ImportError:
    import pickle

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

?
1
2
3
4
5
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.從磁盤讀取到內存對象

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

到此這篇關于關于 Python json中load和loads區別的文章就介紹到這了,更多相關 Python json中load和loads區別內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/python960410445/p/14978742.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久精品中文字幕一区二区 | 国产精品99久久99久久久二 | 国产成人在线免费观看视频 | 国产精品久久久久久久久久大牛 | 国内xxxx乱子另类 | 久久亚洲精品久久国产一区二区 | 一级毛片免费在线 | 国产一区网址 | 黄色av电影在线播放 | 日本高清黄色片 | 久久91精品国产91久久yfo | 广州毛片 | 午夜精品福利视频 | 成熟女人特级毛片www免费 | 中文字幕一区久久 | 久久人人爽人人爽人人片av高清 | 国产毛片网站 | 色播视频在线播放 | 国产在线精品一区二区 | www69xxx | 国产精品一区在线免费观看 | 国产美女自拍av | 广州毛片 | 欧美18—19sex性护士中国 | 一级黄色欧美 | 狠狠干五月 | 国产精品啪一品二区三区粉嫩 | 在线中文字幕亚洲 | 色婷婷久久一区二区 | 一级做a爱视频 | 久久草在线视频国产 | 欧日韩在线视频 | 777zyz色资源站在线观看 | 国产精品久久久久久久久粉嫩 | 国产免费久久久久 | 黄色特级一级片 | 精品69人人人人 | 国产羞羞视频免费在线观看 | 国产1区视频 | 久草中文网 | 91一级毛片 |