序列化模块和导入模块

# 序列化 —— 转向一个字符串数据类型
# 序列 —— 字符串
# 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)
原文地址:https://www.cnblogs.com/hhsh/p/9595596.html