Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >python 变量数据使用 json 进行序列化与反序列化操作

python 变量数据使用 json 进行序列化与反序列化操作

作者头像
全栈程序员站长
发布于 2022-07-08 05:03:57
发布于 2022-07-08 05:03:57
72300
代码可运行
举报
运行总次数:0
代码可运行

python数据格式存在多种多样的(字典、列表、元组等等)数据格式,它们都只是存在于运行程序的时候,程序运行结束之后一切就消失了。但是我们如果需要保存到硬盘中,这该怎么做呢?我们不会把他们都转化为字符串吧。如果转换为字符串之后我们该怎么取出来呢?

这时候就需要使用到 json 把数据进行序列化之后保存到硬盘中了,这样子下一次取出来就不会丢失格式了,这样子是不是很方便呢?

序列化操作

多种多样格式序列化后保存到硬盘

复杂方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
list = [1,'a',6]
list = json.dumps(list)           # 把列表进行序列化
with open('a.txt',"w") as f:      # 写入到文件中,保存到硬盘中
    f.write(list)

简单方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
list = [1,'a',6]
with open('a.txt',"w") as f:     
    f.dump(list,f)                 # 只需要这一行就可以实现上面序列化操作

反序列化操作

把保存的序列化之后的内容取出来到内存中

复杂方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
with open('a.txt',"r") as f:      # 从硬盘中读出数据
    list = f.read()               # 读取文件中的内容
    list = json.loads(list)       # 把内容进行反序列化输出
    print(list) 

简单方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
with open('a.txt','r') as f:
    list = json.load(f)

python变量数据序列化与反序列化的操作是不是很简单呢。

注意: 1、 json格式的内容字符串内容使用的使用双引号; 2、python数据的集合不能进行序列化操作;

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115153.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年11月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
序列化和反序列化
内存中的字典、列表、集合以及各种对象,如何保存到一个文件中? 如果是自己定义的类的实例,如何保存到一个文件中? 如何从文件中读取数据,并让它们在内存中再次变成自己对应的类的实例?
玖柒的小窝
2021/10/23
7070
Python开发之序列化与反序列化:pi
  在日常开发中,所有的对象都是存储在内存当中,尤其是像python这样的坚持一切接对象的高级程序设计语言,一旦关机,在写在内存中的数据都将不复存在。另一方面,存储在内存够中的对象由于编程语言、网络环境等等因素,很难在网络中进行传输交互。由此,就诞生了一种机制,可以实现内存中的对象与方便持久化在磁盘中或在网络中进行交互的数据格式(str、bites)之间的相互转换。这种机制就叫序列化与发序列化:
py3study
2020/01/17
9390
【从零学习python 】55.Python中的序列化和反序列化,JSON与pickle模块的应用
通过文件操作,我们可以将字符串写入到一个本地文件。但是,如果是一个对象(例如列表、字典、元组等),就无法直接写入到一个文件里,需要对这个对象进行序列化,然后才能写入到文件里。
全栈若城
2024/02/29
2440
Pyhon基础知识之Json序列化与反序列化
  做接口测试的时候,我通常需要对返回的数据转换成json格式的字符串,这样通常使用到json库,而json模块四个方法:dump、dumps、load、loads。其中dump和load是操作文件,dumps和loads是操作python对象的。
全栈测试开发日记
2023/02/02
9400
Pyhon基础知识之Json序列化与反序列化
golang json 序列化、反序列化 字符串反序列化
在使用Golang进行开发时,经常会遇到需要将一段JSON字符串进行序列化和反序列化的情况。JSON是一种轻量级数据交换格式,常用于前后端数据传输、存储等场景。Golang提供了内置的​​encoding/json​​包来处理JSON的序列化和反序列化。
大盘鸡拌面
2023/11/11
1.2K0
python基础—序列化操作
JSON是一种轻量级的数据交换格式,JSON相对于XML而言,更加简单,易读和编写,同时也易于机器解析和生成,除此,我们也可以自定义内部使用的数据交换格式。
dogfei
2020/07/31
5770
Python中json和pickle模快dumps()、loads()、dump()、load()序列化和反序列化实例
在python中,序列化可以理解为:把python的对象编码转换为json格式的字符串,反序列化可以理解为:把json格式字符串解码为python数据对象。在python的标准库中,专门提供了json库与pickle库来处理这部分。
王大力测试进阶之路
2019/10/25
1.3K0
python常见模块之序列化(json与pickle以及shelve)
什么是序列化? 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意思。 为什么要序列化? 1:持久保存状态 需知一个软件/程序的执行就在处理一系列状态的变化,在编程语言中,'状态'会以各种各样有结构的数据类型(也可简单的理解为变量)的形式被保存在内存中。 内存是无法永久保存数据的,当程序运行了一段时间,我们断电或者重启程序,内存中关于这个程序的之前一段
人生不如戏
2018/04/12
1.3K0
python中cPickle用法「建议收藏」
在python中,一般可以使用pickle类来进行python对象的序列化,而cPickle提供了一个更快速简单的接口,如python文档所说的:“cPickle – A faster pickle”。
全栈程序员站长
2022/09/07
6300
python接口测试之序列化与反序列化(四)
在python中,序列化可以理解为:把python的对象编码转换为json格式的字符串,反序列化可以理解为:把json格式字符串解码为python数据对象。在python的标准库中,专门提供了json库与pickle库来处理这部分。
无涯WuYa
2018/10/25
9050
Java-json序列化和反序列化
java开发中经常会遇到json的序列化与反序列化,常用的json序列化工具有阿里的Fastjson、spring mvc内置的Jackson、还有就是我们接下来要说的谷歌的Gson。
Vincent-yuan
2021/04/01
4.8K0
python Json与pickle数据序列化
在程序运行的过程中,所有的变量都是在内存中。一旦程序结束,变量所占用的内存就被操作系统全部回收。
py3study
2018/08/02
1.1K0
一个诡异的json反序列化问题
最近我在做知识星球中的商品秒杀系统,昨天遇到了一个诡异的json反序列化问题,感觉挺有意思的,现在拿出来跟大家一起分享一下,希望对你会有所帮助。
苏三说技术
2024/07/02
1730
一个诡异的json反序列化问题
左手用R右手Python系列之——json序列化与反序列化
json格式数据作为如今越来越流行的数据交换格式,几乎已经成为web端数据交互的标准,主流的数据科学语言R,Python都中都有非常完善的半结构化数据与json数据进行通讯。本篇文章将会通过简单案例介绍R语言与Python中与json数据进行序列化与反序列化的常用函数。 json的数据以键值对形式存在,在R语言中,符合此标准的就是基础数据对象中的list(严格来说,R语言中所有数据对象都可以表示为list,但是可以保存递归结构只有list一种)。 在R语言中,涉及到json数据处理的,主要是list转换为
数据小磨坊
2018/04/12
1.8K0
PHP反序列化漏洞
这里你可以看到, 我代码里的类定义为: class F, 这个序列化就是 F, 我定义变量名字是filename, 它这里也是 filename, 我们可以修改看看:
伍尚国
2018/09/11
6180
PHP反序列化漏洞
python序列化:json,pickl
什么是序列化,把程序中的对象或者变量,从内存中转换为可存储或可传输的过程称为序列化。在 Python 中,这个过程称为 pickling,在其他语言中也被称为 serialization,marshalling,flattening 等。程序中的对象(或者变量)在序列化之后,就可以直接存放到存储设备上,或者直接发送到网络上进行传输。
py3study
2020/01/14
9630
phar反序列化
利用phar文件会以序列化的形式存储用户自定义的meta-data这一特性,可以拓展php反序列化漏洞的攻击面。该方法在文件系统函数(file_exists()、is_dir()等)参数可控的情况下,配合phar://伪协议,可以不依赖unserialize()直接进行反序列化操作。
f1sh
2024/07/28
1570
Redis 与序列化
序列化只是一种拆装组装对象的规则,那么这种规则肯定也可能有多种多样,比如现在常见的序列化方式有:JDK(不支持跨语言)、JSON、XML、Hessian、Kryo(不支持跨语言)、Thrift、Protostuff、FST(不支持跨语言)。
业余草
2019/08/29
2.2K0
Redis 与序列化
python: 序列化/反序列化及对象的深拷贝/浅拷贝
一、序列化/反序列化 python中内置了很多序列化/反序列化的方式,最常用的有json、pickle、marshal这三种,示例用法如下: import json import pickle import marshal author1 = {"name": "菩提树下的杨过", "blog": "http://yjmyzz.cnblogs.com/", "title": "架构师", "pets": ["dog", "cat"]} # json序列化 json_str = json.dumps(au
菩提树下的杨过
2018/04/16
7190
python: 序列化/反序列化及对象的深拷贝/浅拷贝
DotNet的JSON序列化与反序列化
    JSON(JavaScript Object Notation)JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。在现在的通信中,较多的采用JSON数据格
彭泽0902
2018/01/04
1.2K0
相关推荐
序列化和反序列化
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验