json的序列化与反序列化

news/2024/7/5 2:00:26

json 是一种轻量级的数据交换格式,也是完全独立于任何程序语言的文本格式。

本文介绍json字符串的序列化与反序列化问题。

  • 序列化 是指将变量(对象)从内存中变成可存储或可传输的过程。
  • 反序列化 是指将变量内容从序列化的对象重新读到内存里的过程。

1、在json模块中,dump()dumps() 都实现了序列化。

dump():将dict对象序列化到文件中(文件中存储json字符串)。

import jsona_dict = {'a': 11, 'b': 22}
a_str = json.dump(a_dict, open('demo.json', 'w'))

dumps():将dict对象序列化为json字符串,仍在内存中。

import jsona_dict = {'a': 11, 'b': 22}
a_str = json.dumps(a_dict)
print(type(a_dict))  # <class 'dict'>
print(type(a_str))  # <class 'str'>

2、在json模块中,load()loads() 都实现反序列化。

load():针对文件句柄,从文件中读取json字符转换为dict

import jsona_json = json.load(open('demo.json', 'r'))
print(type(a_json))  # <class 'dict'>
print(a_json)  # {'a': 11, 'b': 22}

loads():针对内存对象,将json字符串转换为dict

import jsona_str = '{"a": 11, "b": 22}'
a_json = json.loads(a_str)
print(type(a_json))  # <class 'dict'>
print(a_json)  # {'a': 11, 'b': 22}

注意:json字符串的key为单引号时,用json.loads()会报错。

a_str = "{'a': 11, 'b': 22}"
a_json = json.loads(a_str)# json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

http://lihuaxi.xjx100.cn/news/253203.html

相关文章

websecurity - Web Security Testing Framework 超级牛B扫描器

Windows – Websecurify 0.3.exehttp://websecurify.googlecode.com/files/Websecurify%200.3.exeLinux – Websecurify 0.3.tgzhttp://websecurify.googlecode.com/files/Websecurify%200.3.tgzMac – Websecurify 0.3.dmghttp://websecurify.googlecode.com/files/Websecurif…

oracel 不为null 保存空字符串

2019独角兽企业重金招聘Python工程师标准>>> // oracle里面不为 null 就不能保存进入 ""&#xff0c;必须加上一个空格才可以的。 hrEffPfmcePlaneePo.setGoal("");//不可以保存的。oracle 比较严谨很mysql 不一样 hrEffPfmcePlaneePo.setGoal(…

利用反作用力,减负减压轻松快乐学习

女儿自从上了小学后&#xff0c;很不适应&#xff0c;原本无忧无虑的她就像变了个人似的&#xff0c;一个星期至少要哭三四次&#xff0c;害怕迟到要哭&#xff0c;作业不会做要哭&#xff0c;作业来不及做也要哭。学校里每个星期都要考三次以上试&#xff0c;考完还要排名&…

【第16周复盘】学习的飞轮

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…

破解校园数字安全难点,联想推出智慧教育安全体系

“教育数字化”的语境下&#xff0c;校园一直是网络侵害、勒索病毒、信息泄露的重灾区。2022年1月&#xff0c;“coffee”新型勒索病毒恶意攻击国内高校和研究所&#xff1b;4月&#xff0c;西北工业大学受到境外黑客针对师生邮件数据和个人信息的攻击。 数字化教育推动教学高…

Chrome使用技巧和编辑框拖动怪问题。

常用快捷键&#xff1a;ctrlshiftt 重新打开刚关闭的网页ctrlh 打开历史记录ctrl 放大。ShiftEscape 查看任务管理器据说Chrome能调整编辑区大小&#xff0c;我没发现。倒发现Chrome一个问题&#xff0c;选中编辑框中的文字&#xff0c;一直拖动鼠标&a…

java下输出中文的一点研究

网上或者大部分书上都说Java中输出中文使用FileReader类就可以了&#xff0c;但是当你读取一个中文文档时&#xff0c;你会发现&#xff0c;除了乱码&#xff0c;还是乱码。究其原因&#xff0c;这其实是文件流读取时使用的编码方式和文件本身编码方式不同,造成读取出来文件乱码…

手机安全卫士——软件管理-用户程序和系统程序

首先看一下界面&#xff1a; AppManagerActivity .java //软件管理 public class AppManagerActivity extends Activity implements View.OnClickListener{List<AppInfo> appinfos;ListView lv;private List<AppInfo> userAppInfos;private List<AppInfo> sy…