分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

序列化json模块

发布时间:2023-09-06 01:49责任编辑:熊小新关键词:jsjson

1.用json模块来进行序列化和反序列化

 注意:用json序列化的数据类型得到的文件后缀名必须是json。因为如果不是json后缀,别人也不知道这是用json序列化的文件。

序列化:json.dumps(需要转换成字符串的对象),将数据类型转换成字符串,不会存到文件里。

import jsondicts = { ???‘roles‘:[ ???????{‘role‘:‘saber‘,‘name‘:‘dapeng‘,‘life‘:50}, ???????{‘role‘:‘shengqi‘,‘name‘:‘archer‘,‘life‘:60} ???]}f = open(‘111.json‘,‘w‘)d = json.dumps(dicts)print(d,type(d))# {"roles": [{"role": "saber", "name": "dapeng", "life": 50}, {"role": "shengqi", "name": "archer", "life": 60}]} <class ‘str‘>

序列化:json.dump(obj,文件)  将数据类型转换城字符串的同时也存入到文件中。

import jsondicts = { ???‘roles‘:[ ???????{‘role‘:‘saber‘,‘name‘:‘dapeng‘,‘life‘:50}, ???????{‘role‘:‘shengqi‘,‘name‘:‘archer‘,‘life‘:60} ???]}f = open(‘111.json‘,‘w‘)d = json.dump(dicts,f)print(d,type(d))

2反序列化 json.loads(字符串对象)  

dicts = { ???‘roles‘:[ ???????{‘role‘:‘saber‘,‘name‘:‘dapeng‘,‘life‘:50}, ???????{‘role‘:‘shengqi‘,‘name‘:‘archer‘,‘life‘:60} ???]}import jsond = json.dumps(dicts)print(json.loads(d))

json.load(文件对象) 将文件中的字符串转换成字典等类型。

import jsonf = open(‘111.json‘,‘r‘)print(json.load(f))

  

3.json.dumps()和json.loads() 只是在内存中,不存储到硬盘里,存在的意义是什么?

①·把你的内存数据,通过网络,发送给其他人进行共享。网络共享只能通过字符串格式发送,所以要用json.dumps转换成字符串格式。

②·定义了不同语言之间的交互规则。

  1.纯文本 缺点:不能共享复杂的数据类型,如嵌套。

  2.xml       缺点:占空间大(如<year>2018</year>,而字典里可以用‘year‘:2018,更省空间)  

  3.json     简单,可读性好,占用内存较小

4.json.dump()  dump多次可以。

import jsonf = open(‘112.json‘,‘w‘)a = [1,2,3,4,5]b = {1:2,2:3,3:4,4:5,5:6}json.dump(a,f)json.dump(b,f)

那么load多次可以吗?

dump多次的文件,不可以load一次或者多次。

import jsonf = open(‘112.json‘,‘r‘)json.load(f)

  

  

序列化json模块

原文地址:https://www.cnblogs.com/Roc-Atlantis/p/8862071.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved