pickle,json序列化

简介:

序列化:

把对象 转化为 str或者bytes

反序列化:

str或者bytes转化为对象

picklepython所特有的序列化工具,可以序列化所有的东西包括函数,类,数据类型等,序列化后是字节或者二进制文件

json是所有语言都支持的,只支持序列化常规的数据类型,序列化后是可视化的,跟原来的内容是一样的,可视化性更强

pickle:

dumps:序列化后直接返回字符串或者bytes(字节)

dump:序列化后写入文件中

dumpsdump序列化同一个内容,所得出的结果是一样的

使用方法:

        import pickle

        注:json也可以序列化和反序列化,但json面对复杂数据无法处理;

    a.

序列化到文件中:pickle.dump():使用此方法进行序列化

例:

import pickle

dict1 = {'a':1,'name':'LiuZhengwei','age':25}

f = open("test1.pkl","wb")

pickle.dump(dict1,f)

f.close()

注:此时就把字典写入到磁盘中了

如果使用的json,则使用json.dump(dict1,f)

列表,字典等只能序列化之后才能存入文件中

从文件中反序列化:pickle.load():使用此方法进行返序列化

例:

import pickle

f = open("test1.pkl","rb")

data = pickle.load(f)

print(data)

f.close()

注:此时把dump到磁盘中的文件反序列化显示出来

如果使用的json,则使用json.load(f)

    b.  

不序列化到文件中:pickle.dumps()

import pickle

li = ['alex',11,22,'ok','sb']

dumpsed = pickle.dumps(li)

print(dumpsed)

注:可以看到把li列表序列化成了二进制内容,不能正常查看

wKiom1h8cHLA6d9fAAAOTYuyF94585.png

不从文件中反序列化:pickle.loads()

import pickle

li = ['alex',11,22,'ok','sb']

dumpsed = pickle.dumps(li)

print(dumpsed)

loadsed = pickle.loads(dumpsed)

print(loadsed)

wKiom1h8cILynwgYAAATvL2hOUk277.png

json的序列化跟pickle一样:

    import json

json仅仅可以序列化int,float,bool,str,list,dict,None

dumps:返回的是字符串,而pickle返回的是字节

本文转自激情燃烧的岁月博客51CTO博客,原文链接http://blog.51cto.com/liuzhengwei521/1892283如需转载请自行联系原作者


weilovepan520

相关文章
|
8天前
|
JSON Go 数据格式
Golang语言结构体链式编程与JSON序列化
这篇文章是关于Go语言中结构体链式编程与JSON序列化的教程,详细介绍了JSON格式的基本概念、结构体的序列化与反序列化、结构体标签的使用以及如何实现链式编程。
16 4
|
15天前
|
存储 JSON JavaScript
python序列化: json & pickle & shelve 模块
python序列化: json & pickle & shelve 模块
|
22天前
|
JSON Java 数据格式
【IO面试题 七】、 如果不用JSON工具,该如何实现对实体类的序列化?
除了JSON工具,实现实体类序列化可以采用Java原生序列化机制或第三方库如Protobuf、Thrift、Avro等。
|
2月前
|
JSON Dart 安全
Flutter Dart Macro 宏简化 JSON 序列化
今天我们将会体验 dart 语言新特性 macro 宏,来实现对 json 的序列化,用到的包是官方实验室写的 json 包。 本文将会一步步的带你实现这个功能,那我们开始吧。
Flutter Dart Macro 宏简化 JSON 序列化
|
1月前
|
XML 存储 JSON
(十二)探索高性能通信与RPC框架基石:Json、ProtoBuf、Hessian序列化详解
如今这个分布式风靡的时代,网络通信技术,是每位技术人员必须掌握的技能,因为无论是哪种分布式技术,都离不开心跳、选举、节点感知、数据同步……等机制,而究其根本,这些技术的本质都是网络间的数据交互。正因如此,想要构建一个高性能的分布式组件/系统,不得不思考一个问题:怎么才能让数据传输的速度更快?
|
27天前
|
JSON 缓存 安全
Python pickle 二进制序列化和反序列化 - 数据持久化
Python pickle 二进制序列化和反序列化 - 数据持久化
39 0
|
2月前
|
XML JSON 缓存
优化Java中XML和JSON序列化
优化Java中XML和JSON序列化
|
4月前
|
JSON Java Linux
【探索Linux】P.30(序列化和反序列化 | JSON序列化库 [ C++ ] )
【探索Linux】P.30(序列化和反序列化 | JSON序列化库 [ C++ ] )
51 2
|
4月前
|
XML 存储 JSON
c#XML、JSON的序列化和反序列化,看完你就懂了
c#XML、JSON的序列化和反序列化,看完你就懂了
73 0
|
4月前
|
JSON 编译器 Go
Golang深入浅出之-结构体标签(Tags):JSON序列化与反射应用
【4月更文挑战第22天】Go语言结构体标签用于添加元信息,常用于JSON序列化和ORM框架。本文聚焦JSON序列化和反射应用,讨论了如何使用`json`标签处理敏感字段、实现`omitempty`、自定义字段名和嵌套结构体。同时,通过反射访问标签信息,但应注意反射可能带来的性能问题。正确使用结构体标签能提升代码质量和安全性。
169 0

热门文章

最新文章