Gitlib Gitlib
首页
  • 分类
  • 标签
  • 归档
  • Golang开发实践万字总结
  • MySQL核心知识汇总
  • Redis实践总结
  • MQ实践万字总结
  • Docker数据持久化总结
  • Docker网络模式深度解读
  • 常用游戏反外挂技术总结
  • 读书笔记
  • 心情杂货
  • 行业杂谈
  • 友情链接
关于我
GitHub (opens new window)

Ravior

以梦为马,莫负韶华
首页
  • 分类
  • 标签
  • 归档
  • Golang开发实践万字总结
  • MySQL核心知识汇总
  • Redis实践总结
  • MQ实践万字总结
  • Docker数据持久化总结
  • Docker网络模式深度解读
  • 常用游戏反外挂技术总结
  • 读书笔记
  • 心情杂货
  • 行业杂谈
  • 友情链接
关于我
GitHub (opens new window)
  • PHP

  • Golang

  • Python

    • Python使用lambda表达式
    • Python之线程池
    • Python之装饰器
    • Python之chardet模块使用
    • Python之copy模块使用
    • Python之functools模块使用
    • Python之hashlib模块使用
    • Python之json模块使用
    • Python之pickle模块使用
      • 主要方法
      • 代码测试
    • Python之pid模块使用
    • Python之pypinyin模块使用
    • Python之pyqrcode模块使用
    • Python之threading模块使用
    • Python之base64模块使用
    • Python项目Docker打包
  • Javascript

  • 其他语言

  • 编程语言
  • Python
Ravior
2014-01-27
目录

Python之pickle模块使用

在Python开发中,如果需要保存Python对象状态,类似于PHP中serialize操作,该怎么办?Python提供了pickle模块,支持数据序列化和反序列化。

# 主要方法

  • dumps(obj): 对象序列表
  • loads(str): 字符串反序列化对象

# 代码测试

# encoding:utf8
# 序列化和反序列化

import logging

logging.basicConfig(level = logging.DEBUG,format = '%(levelname)s - %(message)s')
# logger从来不直接实例化,经常通过logging模块级方法(Module-Level  Function)logging.getLogger(name)来获得
logger = logging.getLogger(__name__)


import pickle

data = {
	'name':'gitlib'
}

# 查看序列化的字符串
p_str = pickle.dumps(data)
logger.debug(p_str)

# 序列化的字符串转换成对象
data = pickle.loads(p_str)
logger.debug(data['name'])

with open('pickle/main.pkl', 'w') as f:
	# 将对象数据写入文件,该文件数据只有python可以识别,可用于对象序列化/反序列号
	pickle.dump(data, f)


with open('pickle/main.pkl', 'r') as f:
	# 读取序列化文件,导出对象
	_data = pickle.load(f)
	logger.debug(_data['name'])
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

输出结果:

DEBUG - (dp0
S'name'
p1
S'gitlib'
p2
s.
DEBUG - gitlib
DEBUG - gitlib
1
2
3
4
5
6
7
8

日常开发中,可以通过序列化对象保存到文件中进行持久化。

#Python
上次更新: 2022/12/01, 11:09:34
Python之json模块使用
Python之pid模块使用

← Python之json模块使用 Python之pid模块使用→

最近更新
01
常用游戏反外挂技术总结
11-27
02
Golang开发实践万字总结
11-11
03
Redis万字总结
10-30
更多文章>
Theme by Vdoing | Copyright © 2011-2022 Ravior | 粤ICP备17060229号-3 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式