博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
序列化模块/模块/包
阅读量:4507 次
发布时间:2019-06-08

本文共 1170 字,大约阅读时间需要 3 分钟。

1 序列指的是字符串数据类型

在写文件以及网络传输的情况下必须要转成字符串,即数据存储的过程 

从字符串转化为元数据类的过程称之为反序列化

json模块

pickle模块
shelve模块

1.1 pickle所有的python的数据类型都可以转化成字符串形式

是python特有的,只有python能理解.
可以直接把对象写进去
读出来直接当对象用

pickle.dumps 拍散收到字节
pickle.loads 还原字节

pickle.dump 去掉s,就把打散了的写进文件,不是给人看的,是给计算机看的

pickle.load  读出文件的对象
连读两次读就可以读出来两次的内容,写也是
但是就存在一个问题,读的时候不知道里面有多少个,超出即报错,所以使用

while1:       try:             读      expect  Exception:            break

完美解决方案:

把多个都存在一个列表后再序列化,完事读出来再遍历

1.2  json 是一种通用的序列化格式,多种语言通用

由于其通用性,限制了不是所有的数据类都能够转化成字符串

json 可以认为是字典,但存在不同:TF小写,外加一个null=None

区别的意思是转化成的字符串会存在两种方式间的这三个不同

.dumps(,ensure_ascii=False)就可以解决原类型内有中文的问题了,    此时的内容人是可以看懂的

此时收到的是一个字符换类型,转化为bytes即可传输,.encode('utf-8')
如果写文件去的话,只能放一个对象,多个则套个列表的外壳

2 模块

找到模块,创建这个模块的命名空间,把文件中的变量名和函数名命名空间里
不会重复导入
inport demo   的方式会建立一个独立空间,在程序中随意定义
from demo import 变量名    这个变量名就对应成了这个程序的全局变量

在哪个文件里运行,那哪个文件里的__name__就等于'__main__',

而其他模块引入这个模块的时候,其中的__name__就等于'模块名'

因此在模块最后,加入if __name__=='__main__':

                               代码(在调用行绝不执行的那种)

3 包是一个文件夹 , 在包内可以写很多个模块,!!!!不论怎么使用,启动文件必须在最外面,查找路劲都是sys.path,是随动,随启动文件所在夹而变

导入分绝对导入和相对导入
绝对路径一般是很安全的,
相对导入一定要在包的外面启动,项目的框架一般内部使用相对导入

posted on
2019-07-14 22:57 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/shachengcc1/p/11186316.html

你可能感兴趣的文章
项目需求分析答辩总结
查看>>
PostgreSQL 利用pg_upgrade升级版本
查看>>
Mybatis分页插件PageHelper简单使用
查看>>
同步互斥——理发师睡觉问题
查看>>
Python编写的ARP扫描工具
查看>>
github之克隆
查看>>
IOS SWIFT基本画图教程
查看>>
Android 使用ContentProvider扫描手机中的图片,仿微信显示本地图片效果
查看>>
Android应用程序绑定服务(bindService)的过程源代码分析
查看>>
01背包问题,dp和贪心解法(c++11)
查看>>
PacificA协议小结
查看>>
android提示对话框
查看>>
OUC_Summer Training_ DIV2_#5
查看>>
java equals方法
查看>>
弧形菜单2(动画渐入)Kotlin开发(附带java源码)
查看>>
zabbix低级自动发现之mysql多实例
查看>>
实验六和实验十四
查看>>
用Swift重写公司OC项目(Day1)--程序的AppIcon与LaunchImage如何设置
查看>>
C++ 小的使用技巧和注意点
查看>>
x项目第一周随笔
查看>>