Python——序列化模块
#json 模式
1、dumps、loads 方法 针对内存
- dic = {'k1':'v1'}
- #转换成json
- import json
- str_d = json.dumps(dic) #序列化
- dic_d = json.loads(str_d)#反序列化
- #可序列化的类型 数字 字符串 列表 字典
2、dump 、load 方法 针对文件
- dic = {1:'a',2:'b'}
- f = open('fff','w',encoding = 'utf-8')
- json.dump(dic,f,ensure_ascii=False) #序列化 按照正常的编码格式,显示中文
- f.close()
- f = open('fff','w',encoding = 'utf-8')
- ret = json.load() #反序列化
- print(type(res),res)
- f.close()
#pickle模式
- #可以分布的 dump load 操作文件需要使用 'wb' 模式
- import pickle
- dic = {'k1':'v1','k2':'v2','k3':'v3'}
- str_dic = pickle.dumps(dic)
- print(str_dic) #一串二进制内容
- dic2 = pickle.loads(str_dic)
- print(dic2) #字典
- import time
- struct_time1 = time.localtime(1000000000)
- struct_time2 = time.localtime(2000000000)
- f = open('pickle_file','wb')
- pickle.dump(struct_time1,f)
- pickle.dump(struct_time2,f)
- f.close()
- f = open('pickle_file','rb')
- struct_time1 = pickle.load(f)
- struct_time2 = pickle.load(f)
- print(struct_time1.tm_year)
- print(struct_time2.tm_year)
- f.close()
#shelve
open方法
- import shelve
- f = shelve.open('shelve_file')
- f['key'] = {'int':10, 'float':9.5, 'string':'Sample data'} #直接对文件句柄操作,就可以存入数据
- f.close()
- import shelve
- f1 = shelve.open('shelve_file')
- existing = f1['key'] #取出数据的时候也只需要直接用key获取即可,但是如果key不存在会报错
- f1.close()
- print(existing)
- import shelve
- f = shelve.open('shelve_file', flag='r')
- existing = f['key']
- print(existing)
- f.close()
- f = shelve.open('shelve_file', flag='r')
- existing2 = f['key']
- f.close()
- print(existing2)
- import shelve
- f1 = shelve.open('shelve_file')
- print(f1['key'])
- f1['key']['new_value'] = 'this was not here before'
- f1.close()
- f2 = shelve.open('shelve_file', writeback=True)
- print(f2['key'])
- f2['key']['new_value'] = 'this was not here before'
- f2.close()
Python——序列化模块的更多相关文章
- python序列化模块 json&&pickle&&shelve
#序列化模块 #what #什么叫序列化--将原本的字典.列表等内容转换成一个字符串的过程叫做序列化. #why #序列化的目的 ##1.以某种存储形式使自定义对象持久化 ##2.将对象从一个地方传递 ...
- python序列化模块json和pickle
序列化相关 1. json 应用场景: json模块主要用于处理json格式的数据,可以将json格式的数据转化为python的字典,便于python处理,同时也可以将python的字典或列表等对象转 ...
- python 序列化模块之 json 和 pickle
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,支持不同程序之间的数据转换.但是只能转换简单的类型如:(列表.字典.字符串. ...
- python序列化模块
什么叫序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. 序列化的目的 1.以某种存储形式使自定义对象持久化: 2.将对象从一个地方传递到另一个地方. 3.使程序更具维护性. ...
- Python序列化模块pickle和json使用和区别
这是用于序列化的两个模块: • json: 用于字符串和python数据类型间进行转换 • pickle: 用于python特有的类型和python的数据类型间进行转换 Json模块提供了四个功能:d ...
- Python 序列化模块(json,pickle,shelve)
json模块 JSON (JavaScript Object Notation):是一个轻量级的数据交换格式模块,受javascript对象文本语法启发,但不属于JavaScript的子集. 常用方法 ...
- python序列化模块的速度比较
# -*- coding: utf-8 -*- # @Time : 2019-04-01 17:41 # @Author : cxa # @File : dictest.py # @Software: ...
- Python序列化模块-Pickel写入和读取文件
利用pickle 存储和读取文件 1.存储文件: #引入所需包,将列表元素存入data2的文件里面 import pickle mylist2 ={'1','nihao','之后','我们',1,2, ...
- 铁乐学python_day25_序列化模块
铁乐学python_day25_序列化模块 部份内容摘自博客http://www.cnblogs.com/Eva-J/ 回顾内置方法: __len__ len(obj)的结果依赖于obj.__len_ ...
随机推荐
- (二)阿里云ECS Linux服务器外网无法连接MySQL解决方法(报错2003- Can't connect MySQL Server on 'x.x.x.x'(10038))(自己亲身遇到的问题是防火墙的问题已经解决)
我的服务器买的是阿里云ECS linux系统.为了更好的操作数据库,我希望可以用navicat for mysql管理我的数据库. 当我按照正常的模式去链接mysql的时候, 报错提示: - Can' ...
- nth-child(n)和nth-of-type(n)的区别
1.官方解释: p:nth-child(2) 选择属于其父元素的第二个子元素的每个 <p> 元素. p:nth-of-type(2) 选择属于其父元素第二个 <p> 元 ...
- 微信小程序---require()
我们可以通过require()来获取其它文件导出的数据,但要注意的是传给require的路径只能是相对路径. // 获取指定页面通过module.exports导出的数据 var postsData ...
- Dynamics 365 Customer Engagement安装FAQ
微软动态CRM专家罗勇 ,回复310或者20190308可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 本文参考了包括但不限 ...
- Mapbox浅析(快速入门Mapbox)
1.是什么? Mapbox是一个可以免费创建并定制个性化地图的网站. 2.了解一些基本东西 常见的 mapbox.js和mapbox-gl.js的异同点? 相同点: 1.都是由Mapbox公司推出的免 ...
- (办公)mysql连接不上(java.sql.SQLException: null, message from server: "Host 'LAPTOP-O0GA2P8J' is not allowed to connect to this MySQL server")(转)
转载自csdn文章:https://blog.csdn.net/Tangerine_bisto/article/details/803461511.对所有主机进行访问授权 GRANT ALL PRIV ...
- CentOS.7下安装配置FTP和SFTP服务
一: FTP Centos7中默认已经安装了sshd服务(sftp), vsftpd需要手动安装 1.安装并启动FTP服务 1.1 安装vsftpd 使用 yum 安装 vsftpd yum inst ...
- AES 加密与解密
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Securit ...
- Flex builder4.6激活【转】
方法一: 1.到Adobe官网下载FlashBuilder 4.6 http://download.adobe.com/pub/adobe/flex/win/FlashBuilder_4_6_LS10 ...
- LeetCode算法题-Trim a Binary Search Tree(Java实现)
这是悦乐书的第284次更新,第301篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第152题(顺位题号是669).给定二叉搜索树以及L和R的最低和最高边界,修剪树以使其所 ...