python 3 json 序列化
python 3 json 序列化
我们学习过用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,eval就不管用了,所以eval的重点还是通常用来执行一个字符串表达式,并返回表达式的值。
什么是序列化?
我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意思。
JSON(Java Script Object Notation):一种轻量级数据交互格式,相对于XML而言更简单,也易于阅读和编写,机器也方便解析和生成,Json是JavaScript中的一个子集。
序列化之后,不仅可以把序列化后的内容写入磁盘,还可以通过网络传输到别的机器上,如果收发的双方约定好实用一种序列化的格式,那么便打破了平台/语言差异化带来的限制,实现了跨平台数据交互。
反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。
JSON表示的对象就是标准的JavaScript语言的对象,JSON和Python内置的数据类型对应如下:
序列化就是把数据写入到硬盘的文件上,用json的dumps
反序列化就是把序列化存到硬盘的文件内容再加载回来,用json的loads
import json dic={'name':'egon','age':18} print(json.dumps(dic)) # json 格式的字典 print(type(json.dumps(dic))) #<class 'str'>
序列化
import json dic={'name':'egon','age':18} with open('a.json','w') as f: # 往文件中写入json文件 f.write(json.dumps(dic))a.json 文件内容 : {"name": "egon", "age": 18}
反序列化
import jsonwith open('a.json','r') as f: # 读取json文件 data=f.read()dic=json.loads(data)print(dic['name'])
import jsondic={'name':'egon','age':18}json.dump(dic,open('b.json','w')) #简写方式序列化print(json.load(open('b.json','r'))['name']) #简写方式反序列化
import json#dct="{'1':111}"#json 不认单引号#dct=str({"1":111})#报错,因为生成的数据还是单引号:{'one': 1} dct='{"1":"111"}'print(json.loads(dct))#conclusion:# 无论数据是怎样创建的,只要满足json格式,就可以json.loads出来,不一定非要dumps的数据才能loads
注意点
转载于:https://www.cnblogs.com/qiangyuge/p/7360655.html
python 3 json 序列化相关推荐
- 黑马程序员python笔记_#华为云·寻找黑马程序员# 如何实现一个优雅的Python的Json序列化库...
[小宅按]在Python的世界里,将一个对象以json格式进行序列化或反序列化一直是一个问题.Python标准库里面提供了json序列化的工具,我们可以简单的用json.dumps来将一个对象序列化. ...
- #华为云·寻找黑马程序员# 如何实现一个优雅的Python的Json序列化库
在Python的世界里,将一个对象以json格式进行序列化或反序列化一直是一个问题.Python标准库里面提供了json序列化的工具,我们可以简单的用json.dumps来将一个对象序列化.但是这种序 ...
- python使用json序列化datetime类型问题处理
使用python的json模块序列化时间或者其他不支持的类型时会抛异常,例如下面的代码: # -*- coding: cp936 -*- from datetime import datetimeim ...
- Python使用JSON序列化从入门到精通
JSON(JavaScript Object Notation)是一个轻量级的数据交换格式,Python标准库json完美实现了该格式,用法类似于marshal和pickle. >>> ...
- python之json序列化与反序列化
文章目录 序列化就是将python中的字典转换为一种特殊的字符串(json) 那么反序列化就是,将json字符串转换为python字典 想输出真正的中文需要指定ensure_ascii=False,, ...
- Python 之 JSON序列化(我不得不说JSON让世界更加美好了)
文章目录 1.相遇 2.简介 3.序列化和反序列化 1)序列化 2)反序列化 4.使用json深度拷贝 1)第一次尝试 2)第二次尝试 3)第三次尝试,成功! 5.总结 对于开发出JSON的大佬 ,让 ...
- python 序列化压缩成字符串_Python 将json序列化后的字符串转换成字典(推荐)
一般而言下面的就可以完成需求了. def convertToDic(data): jsonDic=json.loads(data) return dict(jsonDic) 但实际应用中可能会出现一些 ...
- 解决Python自带的json序列化工具不能序列化datetime类型数据问题
解决Python自带的json序列化工具不能序列化datetime类型数据问题 参考文章: (1)解决Python自带的json序列化工具不能序列化datetime类型数据问题 (2)https:// ...
- python中常用的序列化模块_第六章 常用模块(5):python常用模块(序列化模块:pickle,json,shelve,xml)...
6.3.7 序列化模块 (pickle,json,shelve,xml) 文件写入,数据传输时,我们都是以字符串形式写入的(因为字符串可以encode成bytes). 那其他类型(比如字典,列表等)想 ...
最新文章
- java线程wait_java多线程学习(四) 之 wait和notify
- 实验4.1 循环控制 一
- 2016年第七届蓝桥杯C/C++ A组国赛 —— 第一题:随意组合
- eclipse源服务器未能找到,eclipse - HTTP状态[404]? [未找到](原始服务器未找到当前表示) - 堆栈内存溢出...
- orm对象关系映射演练 一行就是一个对象
- 计算机的数学发展史论文,数学简史论文范文
- 类成员的访问修饰符和可访问性
- videojs默认显示controls 按钮功能失效_一文看懂Yearning SQL审核平台功能模块设计...
- 年度重磅!2020年度中国计算机视觉人才调研报告正式发布
- fas怎么翻译成lisp_fas文件格式研究
- C# 第五章『面向对象』◆第9节:抽象类和密封类
- 使用selenium模拟登陆163邮箱
- 云解析 dns 服务器,你知道为什么云解析DNS又快又安全吗?
- 雨课堂《工程伦理》期末答案
- php抓取快照,PHP抓屏函数实现屏幕快照代码分享
- 计算机地图制图期末考试题,计算机地图制图原理思考题.doc
- 刘顺琦 - CSCI 561 mid 1definition
- 实时时钟(Real_Time Clock)电路--中微爱芯
- 这平安夜,我们来用python演奏一首铃儿响叮当吧
- bps、pps、fps