序列化模块和导入模块
Posted hhsh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了序列化模块和导入模块相关的知识,希望对你有一定的参考价值。
# 序列化 —— 转向一个字符串数据类型 # 序列 —— 字符串 # json 数字 字符串 列表 字典 元组 # pickle # 所有的python中的数据类型都可以转化成字符串形式 # pickle序列化的内容只有python能理解 # 且部分反序列化依赖python代码 # shelve # 序列化句柄 # 使用句柄直接操作,非常方便 import json dicts = {‘name‘:‘huang‘, ‘age‘: 16, 1: ‘a‘, 2: 2} d = json.dumps(dicts) print(type(d),d) d_json_loads = json.loads(d) # 反序列化 print(type(d_json_loads), d_json_loads) # d = {‘name‘: ‘huang‘, ‘age‘: 6} # with open(‘test.txt‘,‘w‘) as f: # json.dump(d, f) # # with open(‘test.txt‘) as f: # result = json.load(f) # print(result,type(result)) # import pickle # dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘,‘k3‘:‘v3‘} # result = pickle.dumps(dic) # print(result) # 一串二进制内容 # # dic = pickle.loads(result) # print(dic) # import shelve # f1 = shelve.open(‘test.txt‘) # f1[‘name‘] = {‘int‘: 10, ‘float‘: 10.0} # f1.close()
# 导入顺序 内置模块>扩展模块>自定义模块 # import 模块名 # from 模块 import 变量名 # 直接使用 变量名 就可以完成操作 # 如果本文件中有相同的变量名会发生冲突 # from 模块名 import * # 将模块中的所有变量名都放到内存中 # 如果本文件中有相同的变量名会发生冲突 # from 模块名 import * 和 __all__ 是一对 # 没有这个变量,就会导入所有的名字 # 如果有all 只导入all列表中的名字 # __name__ # 在模块中 有一个变量__name__, # 当我们直接执行这个模块的时候,__name__ == ‘__main__‘ # 当我们执行其他模块,在其他模块中引用这个模块的时候,这个模块中的__name__ == ‘模块的名字‘ # 当这个文件被别的模块调用时,如果没有if语句, print(__name__) # 输出__main__ print(123) if __name__ == ‘__main__‘: print(123)
以上是关于序列化模块和导入模块的主要内容,如果未能解决你的问题,请参考以下文章
如何使用模块化代码片段中的LeakCanary检测内存泄漏?