广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python序列化模块JSON与Pickle
  • 730
分享到

Python序列化模块JSON与Pickle

2024-04-02 19:04:59 730人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

序列化把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在python中叫pickling,在其他语言中也被称之为serialization,marshalling,flat

序列化把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening。

一、JSON序列化

使用json序列化能够达到跨平台传输数据的目的。

跨平台性质,它可以序列化dict/list/str/int/float/bool/None数据类型。

序列化成json文本格式。

1、json数据类型和Python数据类型对应关系表:

Json类型<——>Python类型

  • {}<——>dict
  • []<——>list, tuple
  • "string"<——>str, unicode
  • 520.13<——>int, long, float
  • true/false<——>True/False
  • null<——>None

2、相关函数

(2)序列化

  • 序列化成字符串:json.dumps(json_obj)
  • 序列化字符串到文件中:json.dump(json_obj, write_file, [,protocol])

(2)反序列化

  • 反序列化成对象:json.loads(json_str)
  • 从文件读流中反序列化成对象:json.load(read_file)

3、举例:

import json

struct_data = {'name': 'json', 'age': 23, 'sex': 'male'}
print(struct_data, type(struct_data))  # {'name': 'json', 'age': 23, 'sex': 'male'} 
# 序列化
data = json.dumps(struct_data)
print(data, type(data))  # {"name": "json", "age": 23, "sex": "male"} 

# 反序列化
data = json.loads(data)
print(data, type(data))  # {'name': 'json', 'age': 23, 'sex': 'male'}

磁盘文件操作

import json

# 序列化,写入磁盘
with open('Json序列化对象.json', 'w') as fw:
    json.dump(struct_data, fw)

# 从文件读取,反序列化
with open('Json序列化对象.json') as fr:
    data = json.load(fr)
print(data)  # {'name': 'json', 'age': 23, 'sex': 'male'}

二、Pickle序列化

pickle无法跨平台,序列化之后只有python识别。但是可以序列化Python的任意数据类型,包括函数和对象。

Json模块和picle模块都有 dumps、dump、loads、load四种方法,而且用法一样。但是序列化成二进制形式。

1、举例:

import pickle

struct_data = {'name': 'json', 'age': 23, 'sex': 'male'}
print(struct_data, type(struct_data))  # {'name': 'json', 'age': 23, 'sex': 'male'} 

data = pickle.dumps(struct_data)
print(data, type( data))  # b'\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x04\x00\x00\x00jsonq\x02X\x03\x00\x00\x00ageq\x03K\x17X\x03\x00\x00\x00sexq\x04X\x04\x00\x00\x00maleq\x05u.' 

data = pickle.loads(data)
print(data, type(data))  # {'name': 'json', 'age': 23, 'sex': 'male'} 'dict'>

# 序列化(注意:pickle模块需要使用二进制存储,即'wb'模式存储)
with open('Pickle序列化对象.pkl', 'wb') as fw:
    pickle.dump(struct_data, fw)

# 反序列化
with open('Pickle序列化对象.pkl', 'rb') as fr:
    pickle = pickle.load(fr)
print(data)  # {'name': 'json', 'age': 23, 'sex': 'male'}

2、base64与pickle联合使用

str = 'Hello World'  # 加密前,原始数据
a = base64.b64encode(pickle.dumps(str)).decode()  # 加密
print(a) # gANYCwAAAEhlbGxvIFdvcmxkcQAu
b = pickle.loads(base64.b64decode(a.encode()))  # 解密
print(b)

到此这篇关于Python序列化模块JSON与Pickle的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Python序列化模块JSON与Pickle

本文链接: https://www.lsjlt.com/news/118541.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python序列化模块JSON与Pickle
    序列化把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flat...
    99+
    2022-11-11
  • Python序列化模块之pickle与json详解
    目录序列化模块序列化和反序列化使用场景dumps & loadsdump & loadJSON序列化模块使用场景支持的数据类型JSON和pickle的区别序列化函数j...
    99+
    2022-11-11
  • Python序列化模块之pickle与json怎么使用
    本篇内容主要讲解“Python序列化模块之pickle与json怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python序列化模块之pickle与json怎么使用”吧!序列化模块imp...
    99+
    2023-06-30
  • python Json与pickle数据序列化
    在程序运行的过程中,所有的变量都是在内存中。一旦程序结束,变量所占用的内存就被操作系统全部回收。为了避免数据丢失,把变量从内存中变成可存储或传输的过程称之为序列化序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。反过...
    99+
    2023-01-30
    序列化 数据 python
  • Python数据序列化之pickle模块
    目录1将Python数据存储为本地文件①存储过程②加载过程2将Python数据存储为程序的一部分①存储过程②加载过程前言: 在英语中 pickle 名词是泡菜,动词是腌渍的意思。可以...
    99+
    2022-11-13
  • PythonJson与pickle模块序列化使用介绍
    用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进行转换 Json模块提供了四个功...
    99+
    2022-11-11
  • Python 序列化模块(json,pi
    json模块 JSON (JavaScript Object Notation):是一个轻量级的数据交换格式模块,受javascript对象文本语法启发,但不属于JavaScript的子集。 常用方法: dump(obj,fp):将对象以...
    99+
    2023-01-30
    模块 序列化 Python
  • Python 对象序列化与反序列化之pickle json详细解析
    目录引言picklejson尾语引言 将对象的状态信息转换为可以存储或传输的形式的过程叫作序列化 类似地从序列化后的数据转换成相对应的对象叫作 反序列化 本文介绍 Python 将对...
    99+
    2022-11-12
  • Python数据序列化的pickle模块怎么用
    这篇文章主要介绍了Python数据序列化的pickle模块怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python数据序列化的pickle模块怎么用文章都会有所收获,下面我们一起来看看吧。前言:在英语中...
    99+
    2023-06-29
  • Python的pickle序列化和JSON序列化实例分析
    本文小编为大家详细介绍“Python的pickle序列化和JSON序列化实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python的pickle序列化和JSON序列化实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-06-30
  • 详解Python之数据序列化(json、pickle、shelve)
    一、前言 1. 现实需求 每种编程语言都有各自的数据类型,其中面向对象的编程语言还允许开发者自定义数据类型(如:自定义类),Python也是一样。很多时候我们会有这样的需求: 把内存中的各种数据类型的...
    99+
    2022-06-04
    详解 序列化 数据
  • Python常用标准库详解(pickle序列化和JSON序列化)
    目录常用的标准库序列化模块序列化和反序列化使用场景dumps & loadsdump & loadJSON序列化模块使用场景支持的数据类型JSON和pickle的区别...
    99+
    2022-11-11
  • Python学习笔记之json模块和pickle模块
    目录json模块序列化与反序列化json模块中的方法pickle模块总结json模块 json用于不同语言之间的数据交换,比如C和Python之间等等,即可跨语言。而pickle只能...
    99+
    2023-05-18
    json模块 pickle模块 python各个模块讲解
  • 如何使用Python中的pickle模块进行对象序列化
    如何使用Python中的pickle模块进行对象序列化概述:在Python编程中,我们经常需要将数据保存到文件或通过网络传输。而对象序列化是一种将对象转化为可存储或传输的格式的过程,而pickle模块正是Python中一种常用的序列化模块。...
    99+
    2023-10-22
    Python pickle 对象序列化
  • 如何使用Python中的pickle和JSON进行对象序列化和反序列化
    如何使用Python中的pickle和JSON进行对象序列化和反序列化Python是一种简单而强大的编程语言,其内置了许多有用的库和模块,使开发人员能够快速进行各种任务。其中,pickle和JSON是两个常用的模块,用于对象序列化和反序列化...
    99+
    2023-10-22
    序列化 JSON pickle
  • Python json序列化
    Python内置的json模块提供了非常完善的对象到JSON格式的转换。废话不多说,我们先看看如何把Python对象变成一个JSON: d = dict(name='Kaven', age=17, sex='Male') print(j...
    99+
    2023-01-31
    序列化 Python json
  • python3--序列化模块,hashlib模块
    内置方法(回顾)__len__    len(obj)的结果依赖于obj.__len__()的结果,计算对象的长度__hash__   hash(obj)的结果依赖于obj.__hash__()的结果,计算对象...
    99+
    2023-01-30
    模块 序列化 hashlib
  • python序列化:json,pickl
    什么是序列化,把程序中的对象或者变量,从内存中转换为可存储或可传输的过程称为序列化。在 Python 中,这个过程称为 pickling,在其他语言中也被称为 serialization,marshalling,flattening 等。...
    99+
    2023-01-31
    序列化 python pickl
  • C#对JSON与对象的序列化与反序列化
    一、利用Web服务中的JavaScriptSerializer 类 System.Web.Script.Serialization空间,位于System.Web.extensions...
    99+
    2022-11-13
  • Python pickle模块实现Python对象持久化存储
    目录前言:pickle.dumps()函数pickle.loads()函数pickle.dump()函数pickle.load()函数总结:前言: Python 中有个序列化过程叫作...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作