一. 序列化

1 定义: 在我们存储数据或者⽹网络传输数据的时候. 需要对我们的对象进⾏行行处理理. 把对象处理理成 ⽅方便便存储和传输的数据格式. 这个过程叫序列列化. 不同的序列列化, 结果也不同. 但是⽬目的是⼀一 样的. 都是为了了存储和传输.

2 方案 :

1. pickle. 可以将我们python中的任意数据类型转化成bytes并写入到⽂文件中.  同样也 可以把⽂文件中写好的bytes转换回我们python的数据. 这个过程被称为反序列列化

import pickle
class Notebook:
def __init__(self, page, size):
self.page = page
self.size =size
def remenber(self):
print("记录笔记!") n = Notebook(100, "A5")
s = pickle.dumps(n)
s_n = pickle.loads(s)
print(s_n.page) with open("pick_test", mode="w+b") as f:
pickle.dump(n, f)
pickle.dump(n, f)
f.seek(0)
print(pickle.load(f).size)
print(pickle.load(f).size)

2. shelve. 简单另类的⼀一种序列列化的⽅方案. 有点⼉儿类似后⾯面我们学到的redis. 可以作为 ⼀一种⼩小型的数据库来使⽤用

s = shelve.open("shel_test",writeback=True)
s["a"] = "鲁迅"
print(s["a"])
s["a"] = "大白" # 因有writeback=True, 所以可以直接改写文件
print(s["a"])
for i in s: # 和字典一样可以循环哪key和value
print(i)
s.close()

3. json. 将python中常⻅见的字典, 列列表转化成字符串串. 是⽬目前前后端数据交互使⽤用频率 最⾼高的⼀一种数据格式.

s = json.dumps(dic, ensure_ascii=False)
print(s)
print(type(s))
re = json.loads(s, encoding="utf-8")
print(re)
print(type(re))
print(re["演员"]) with open("json_test", mode="w+",encoding="utf-8") as fj:
json.dump(dic, fj, ensure_ascii=False)
fj.write("\n")
json.dump(dic, fj, ensure_ascii=False) with open("json_test", mode="r", encoding="utf-8") as fr:
st = fr.readline().strip()
ret = json.loads(st, encoding="utf-8")
print(ret)
print(type(ret))

configparser模块    该模块适⽤用于配置⽂文件的格式

conf = configparser.ConfigParser()
conf["DEFAULT"] = { "ip": "192.168.1.1",
"port": 3306 } conf["A"] = { "ip": "192.168.1.2",
"port": 3306 }
conf["B"] = { "ip": "192.168.1.2",
"port": 3306 }
conf["C"] = { "ip": "192.168.1.2",
"port": 3306 } with open("configp_test", mode="w", encoding="utf-8") as f:
conf.write(f) conf.read("configp_test")
print(conf.sections()) # 拿到章节名
print(conf.get("A", "ip")) # 拿章节里面的ip
for i in conf["A"]: # 循环章节
print(i) # 打印章节 内容中的信息key
print(conf["A"]["ip"]) # value

python序列化的更多相关文章

  1. python 序列化之JSON和pickle详解

    JSON模块 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类 ...

  2. Python序列化和反序列化

    Python序列化和反序列化 通过将对象序列化可以将其存储在变量或者文件中,可以保存当时对象的状态,实现其生命周期的延长.并且需要时可以再次将这个对象读取出来.Python中有几个常用模块可实现这一功 ...

  3. python序列化pickle/cPickle

    一.pickle/Cpickle简介 Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人.你会怎么做?这取决于你想要怎么保存,怎么重用,发送给谁.很多游 ...

  4. python序列化与反序列

    python序列化与反序列 在python中提供了两个模块可进行序列化.分别是pickle和json.他们两者的功能都差不多,dumps和dump都是进行序列化,而loads和load则是反序列化. ...

  5. Python 序列化pickle/cPickle模块整理

    Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人.你会怎么做?这取决于你想要怎么保存,怎么重用,发送给谁.很多游戏允许你在退出的时候保存进度,然后你再 ...

  6. 学习笔记:Python序列化常用工具及性能对比

    什么叫序列化?简单来讲就是将内存中的变量数据转而存储到磁盘上或是通过网络传输到远程. 反序列化是指:把变量数据从序列化的对象重新读到内存里. 下面我们一起来看看,python里面序列化常用的json. ...

  7. Python 序列化 pickle/cPickle模块

    Python 序列化 pickle/cPickle模块 2013-10-17 Posted by yeho Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给 ...

  8. Python 序列化与反序列化

    序列化是为了将内存中的字典.列表.集合以及各种对象,保存到一个文件中(字节流).而反序列化是将字节流转化回原始的对象的一个过程. json库 序列化:json.dumps() 反序列化:json.lo ...

  9. python 序列化 json pickle

    python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储:通过pickle模块的反序列化操作,我们能够从文件 ...

  10. Python序列化之json与pickle

    1.json介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Progra ...

随机推荐

  1. [NOI2017]游戏(2-SAT)

    这是约半年前写的题解了,就搬过来吧 感觉这是NOI2017最水的一题(当然我还是不会2333),因为是一道裸的2-SAT.我就是看着这道题学的2-SAT 算法一:暴力枚举.对于abc二进制枚举,对于x ...

  2. PMP证书的获取,不知道10大注意事项会吃亏

    作为一个已经考过PMP的小项目经理我来说,近来接到不少咨询PMP的,有咨询考试事宜的,也有咨询后续的换审和PDU的,今天我这边就说说PMP项目管理证书要获取的一些注意事项,不注意的话可是会吃大亏的. ...

  3. Redis:默认配置文件redis.conf详解

    转: Redis:默认配置文件redis.conf详解 # Redis配置文件样例 # Note on units: when memory size is needed, it is possibl ...

  4. 工具类:Colletions ,Arrays(静态导入,可变参数,强循环)

    一.Collecti 专门用来操作集合的工具类,没有构造函数,全静态方法. 常用方法: static <T extends Comparable<? super T>> voi ...

  5. SpringCloud第二弹(高可用Eureka+Ribbon负载均衡)

    先建立父工程 .. ..一路next 搭建注册中心(需要建立三个工程,端口不一样) .. .. .. 修改入口类 package com.cloud.eurekaserver1111; import ...

  6. 关于用户输入恶意js

    有些黑客经常闲得蛋疼的那别人的网站测试,利用一些输入的漏洞提交js代码,搞恶作剧. 对于freemarker视图的web应用,可以参考以下方法: http://yshjava.iteye.com/bl ...

  7. Python基础语法总结

    1.Python标识符 在 Python 里,标识符有字母.数字.下划线组成. 在 Python 中,所有标识符可以包括英文.数字以及下划线(_),但不能以数字开头. Python 中的标识符是区分大 ...

  8. 2018.10.26 浪在ACM 集训队第四次测试赛

    2018.10.26 浪在ACM 集训队第四次测试赛 题目一览表 来源 考察知识点 完成时间 A 生活大爆炸版 石头剪刀布  NOIP 提高组 2014   模拟???  2018.11.9 B 联合 ...

  9. (大数 string easy。。。)P1781 宇宙总统 洛谷

    题目背景 宇宙总统竞选 题目描述 地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统. 输入输出格式 输入格式: pr ...

  10. go 实现用户特权判断的例子

    需求:实现用户特权,可以满足下面1个或多个条件 红名 达人 vip会员 vip超级会员 蓝钻用户 红钻用户 1.实现方法一:可以根据数据库字段,每个特权用一个字段,进行判断缺点:每增加一个特权,要进行 ...