Python之路--序列化
序列化的目的
json
#将对象转换字符串,存储到文件中(dump)
import json
dic = {1:2,3:4,5:6}
f = open('a1.txt','w',encoding='utf-8')
s = json.dump(dic,f)
print(s)
运行结果:
文件中已填写的内容:{": 6}
#将文件的字符串转换成原格式输出(load)
f = open('a1.txt','r',encoding='utf-8')
s1 = json.load(f)
print(type(s1),s1)
运行结果:
<': 6}
将对象转换成字符串 import json lst = [1,2,3,4] s = json.dumps(lst) print(type(s),s) 运行结果: <class 'str'> [1, 2, 3, 4]
#将字符串转换成对象 lst = [1,2,3,4] s1 = json.loads(s) print(type(s1),s1) 运行结果: <class 'list'> [1, 2, 3, 4]
pickle
#将对象转换为文件(内容是字节,看不懂的字节)
import pickle
f = open('a2.py','wb')
dic = {1:2,3:4}
s = pickle.dump(dic,f)
print(s)
运行结果:文件已填写内容,但是是一串看不懂的字节
#将字节文件转换成对象
f1 = open('a2.py','rb')
s1 = pickle.load(f1)
print(s1)
运行结果:{1: 2, 3: 4}
#将对象转换成字节
import pickle
dic = {1:2,3:4}
s = pickle.dumps(dic)
print(s)
运行结果:b'\x80\x03}q\x00(K\x01K\x02K\x03K\x04u.'
#将字节转换成对象
s1 = pickle.loads(s)
print(s1)
运行结果:
{1: 2, 3: 4}
shelve
import shelve
f = shelve.open('a2')
#创建了3个文件,a2.bak(是备份),这三个文件的内容都不要有任何的修改
f['name'] = 'alex' #增加键值对
f['age'] = 18
print(f['name'])
打印结果:alex
##实现修改name的操作
import shelve
f = shelve.open('a2',writeback=True)
f['name'] = 'baoyuan'
print(f['name'])
Python之路--序列化的更多相关文章
- python之路 序列化 pickle,json
运行代码,毫不留情地得到一个TypeError: Traceback (most recent call last): ... TypeError: <__main__.Student obje ...
- Python之路第五天,基础(5)-序列化和字符串格式化
序列化 Python中用于序列化的两个模块 json 用于『字符串』和『python基本数据类型』间进行转换 pickle 用于『python特有的类型』和『python基本数据类型』间进行转换 js ...
- 小白的Python之路 day4 json and pickle数据标准序列化
一.简述 我们在写入文件中的数据,只能是字符串或者二进制,但是要传入文件的数据不一定全是字符串或者二进制,那还要进行繁琐的转换,然后再读取的时候,还要再转回去,显得很麻烦,今天就来学习标准的序列化:j ...
- python之路 目录
目录 python python_基础总结1 python由来 字符编码 注释 pyc文件 python变量 导入模块 获取用户输入 流程控制if while python 基础2 编码转换 pych ...
- Python之路【第十七篇】:Django【进阶篇 】
Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...
- Python之路【第十七篇】:Django之【进阶篇】
Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...
- Python之路【第十七篇】:Django【进阶篇】
Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...
- Python之路,Day4 - Python基础4 (new版)
Python之路,Day4 - Python基础4 (new版) 本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...
- python之路1
python之路 http协议 html HTML2 CSS选择器 CSS属性操作 CSS属性操作/下 JavaScript(js)/上 JavaScript的对象 JavaScript的对象/下 前 ...
随机推荐
- hdu5036 Explosion 传递闭包
大哲哥的讲课内容 根据期望的线性性,得到总期望为各个点被轰的概率(不会证,好像是这样吧) 传递闭包解决出每个点的祖先(能到达它的点)就能算概率了 bitset能贡献1/w的复杂度,而且导致Floyd只 ...
- Hadoop体系结构
在前面的博文中,我已经介绍过Hadoop的基本概念了(见博文初识Hadoop),今天来介绍一下Hadoop的体系结构. Hadoop的两大核心是HDFS和MapReduce,而整个Hadoop的体系结 ...
- NHibernate中创建User类报错问题
前两天刚开始学习NHibernate架构,照着前辈的例子打了一遍运行之后没问题,然后自己创建了一个User的Model发现一运行就报User附近有错误,然后就检查,类写的没错用了virtual,Use ...
- feign容断忽略某些异常
@HystrixCommand(ignoreExceptions={ BusinessException.class, IllegalArgumentException.class, BadCrede ...
- 洛谷 CF1148A Another One Bites The Dust
Another One Bites The Dust CF的题目在你谷上难度虚高似乎已成常态 不过这道题相比于愚人节的那几道相对好得多,没有被评成紫题. 这道题题面意思比较清楚,就是对于给定数量的'a ...
- gulp运行步骤
一.运行→输入cmd→跳出命令窗口二.cd D: 敲回车进入D盘,cd www 进入项目路径 cd mygulp三.执行 cnpm install gulp --save-dev 命令 (初始化安装g ...
- Hive的HQL(2)
Hive基础(1) Hive的HQL(2) 1. HQL的数据定义,HQL是一种SQL方言,支持绝大部分SQL-92标准.但是和SQL的差异为:不支持行级别的操作,不支持事务等.HQL的语法接近于My ...
- C#调用C++接口返回字符串的做法
作者:朱金灿 来源:http://blog.csdn.net/clever101 现在有这样一种情景,假如C#调用C++接口需要返回一个字符串.因为字符串是不定长的,因此传递一个定长的字符串进去是不合 ...
- object flash
<!-- html插入flash --> <object type="application/x-shockwave-flash" width="100 ...
- idea2018.1.2 激活
https://www.cnblogs.com/ycjcham/p/8724451.html