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

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

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

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

序列化操作

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

复杂方法

list = [1,'a',6]
list = json.dumps(list)           # 把列表进行序列化
with open('a.txt',"w") as f:      # 写入到文件中,保存到硬盘中
    f.write(list)
    

简单方法

list = [1,'a',6]
with open('a.txt',"w") as f:     
    f.dump(list,f)                 # 只需要这一行就可以实现上面序列化操作

反序列化操作

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

复杂方法

with open('a.txt',"r") as f:      # 从硬盘中读出数据
    list = f.read()               # 读取文件中的内容
    list = json.loads(list)       # 把内容进行反序列化输出
    print(list) 
    

简单方法

with open('a.txt','r') as f:
    list = json.load(f)

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Spring Boot-注册linux的服务

    Spring Boot-注册linux的服务

    2021年5月16日
    354
  • [重点]delphi 实现 根据给定的标题去《中国青年报》网上电子报数据中查找匹配的内容,并从该内容中取出引题、正题、副题、作者和正文。…

    [重点]delphi 实现 根据给定的标题去《中国青年报》网上电子报数据中查找匹配的内容,并从该内容中取出引题、正题、副题、作者和正文。…项目要求:根据给定的标题去《中国青年报》网上电子报数据中查找匹配的内容,并从该内容中取出引题、正题、作者和正文。unitUnit1;interfaceusesWinapi.Windows,Winapi.Messages,System.SysUtils,System.Variants,System.Classes,Vcl.Graphics,…

    2022年7月25日
    9
  • 解决哈希冲突的方法「建议收藏」

    解决哈希冲突的方法「建议收藏」在实际的应用中,选取合适的哈希函数可减少冲突,但冲突是不可避免的。所以我就想给大家说几种解决哈希冲突的方法啦~首先就是开放定址法,用这个方法处理冲突的核心思想就是在冲突发生的时候,形成一个地址序列,顺着这个序列挨个去检查探测,一直等到找到一个“空”的开放地址。把我们发生冲突的关键字值存放到这个“空”地址中去。这个地址的算法一般就是:Hi=(H(key)+di)%m  这里面的i=1,2,。

    2022年6月17日
    37
  • java JDBC连接数据库步骤及代码

    java JDBC连接数据库步骤及代码JDBC连接数据库,包含7个步骤(1)加载JDBC驱动程序在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(StringclassName)实现,成功加载后,会将Driver类的实例注册到DriverManager类中。代码如下:static{ try{ …

    2022年7月26日
    2
  • 如何学习嵌入式软件

    如何学习嵌入式软件什么是嵌入式?嵌入式分为广义和狭义两种。广义的嵌入式就是片上系统(systemonachip),包括单片机、PSOC、NIOS、Microblaze等。而狭义的嵌入式就是ARM9、cortexA8等特定的跑操作系统的芯片。这里主要介绍狭义嵌入式的学习路线。还是主流的方法,先学会使用它,再深入研究底层。常用的嵌入式操作系统有Linu…

    2022年6月5日
    41
  • 激光SLAM原理_激光打标机

    激光SLAM原理_激光打标机在机器人运动控制系统架构中,可分为最底层、中间通信层和决策层三大层面,最底层包含了机器人本身的电机驱动和控制部分,中间通信层是底层部分和决策层的通信通路,而决策层则是实现机器人的定位建图及导航。在机器人定位导航中,目前主要涉及到激光SLAM与视觉SLAM,激光SLAM在理论、技术和产品落地上都较为成熟,因而成为现下最为主流的定位导航方式,在家用扫地机器人及商用送餐机器人等服务机器人中普遍采用了…

    2022年8月23日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号