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的对象/下 前 ...
随机推荐
- ZipUtils
package com.yundaex.common.exception.util; import java.io.ByteArrayInputStream; import java.io.ByteA ...
- 【手撸一个ORM】第八步、查询工具类
一.实体查询 using MyOrm.Commons; using MyOrm.DbParameters; using MyOrm.Expressions; using MyOrm.Mappers; ...
- 持续集成~Jenkins构建dotnetCore的项目
上周一个大件就是dotnet core2.0发布了,伴随着.NET Standard2.0也发布了,整个微软的生态环境大好,当然也有一个BUG出来了,比如EFCore对Mysql的支持比起1.1来说, ...
- windows下利用intellij idea等工具开发erlang
今天突然想在家里去年新买的电脑上写点erlang代码,然后可耻的发现家里的电脑上竟然没有开发环境,果然是去年6月以后没写过erlang代码么╮(╯▽╰)╭? 首先下载需要用的几样东西: ...
- storm中的topology-worker-executor-task
调度角色 调度方法 自定义调度 1 调度角色 任务角色结构 上图是JStorm中一个topology对应的任务执行结构,其中worker是进程,executor对应于线程,task对应着spout ...
- Electron 入门文档
https://www.kancloud.cn/wizardforcel/electron-doc/137765 https://segmentfault.com/a/1190000006207600 ...
- 掌握 Azure 的注册、帐户和订阅管理 Azure 上云须知
计划使用由世纪互联运营的 Microsoft Azure 的用户,可通过下列流程注册开通并购买所需 Azure 服务:信息获取 > 试用 > 购买 > 账户/订阅管理 > 支付 ...
- 快速搭建基于Azure Paas的高可用WordPress网站
产品详情 产品介绍 WordPress是一种使用非常广泛的CMS系统.本应用是根据Azure Resource Manager模板创建的.通过该ARM模板可以快速建立web应用和MySQL数据库,部署 ...
- 洛谷 P3119 [USACO15JAN]草鉴定Grass Cownoisseur
屠龙宝刀点击就送 Tarjan缩点+拓扑排序 以后缩点后建图看n范围用vector ,或者直接用map+vector 结构体里数据要清空 代码: #include <cstring> #i ...
- docker-java的使用
1. docker java 的api需要证书的认证 在/home/hett文件下创建certs证书 生成服务器私钥,命令如下: $openssl genrsa -out server-key.pem ...