import json
import pickle
"""
序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes(把内存数据存到硬盘上)
序列化
将字符串转为字节byte类型
反序列化
将字节byte转为字符串
"""
dict_msg = {‘name‘: ‘小小‘,
‘age‘: 18,
‘adress‘: ‘北京市通州区幸福大街‘}
str_dict_msg = json.dumps(dict_msg)
print(
str_dict_msg) # {"name": "\u5c0f\u5c0f", "age": 18, "adress": "\u5317\u4eac\u5e02\u901a\u5dde\u533a\u5e78\u798f\u5927\u8857"}
print(type(str_dict_msg)) # class ‘str‘>
dict_str_dict_msg = json.loads(str_dict_msg)
print(dict_str_dict_msg) # {‘name‘: ‘小小‘, ‘age‘: 18, ‘adress‘: ‘北京市通州区幸福大街‘}
print(type(dict_str_dict_msg)) # <class ‘dict‘>
# f = open(‘json序列化‘,‘w‘,encoding=‘utf-8‘)
# json.dump(dict_msg,f)
# f.close()
# f = open(‘json序列化‘,‘r‘,encoding=‘utf-8‘)
# file_json_load = json.load(f)
# print(file_json_load) # {‘name‘: ‘小小‘, ‘age‘: 18, ‘adress‘: ‘北京市通州区幸福大街‘} # <class ‘dict‘>
# f.close()
def sum(a, b):
return a + b
func_sum_pickle_dumps = pickle.dumps(sum)
print(func_sum_pickle_dumps) # b‘\x80\x03c__main__\nsum\nq\x00.‘
print(pickle.dumps(dict_msg))#b‘\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x06\x00\x00\x00\xe5\xb0\x8f\x
loads_func_sum_pickle_dumps = pickle.loads(func_sum_pickle_dumps)
print(loads_func_sum_pickle_dumps) # <function sum at 0x00000000027E01E0>返回的是函数sum的内存地址
print(loads_func_sum_pickle_dumps(1, 2)) # 3
# f = open(‘pickle序列化‘, ‘wb‘) # 注意pickle要用二进制方式写入,不要指定编码格式
# pickle.dump(dict_msg, f)
# f.close()
# f = open(‘pickle序列化‘, ‘rb‘)
# # dict_pick_load = pickle.load(f)
# # print(dict_pick_load) # {‘name‘: ‘小小‘, ‘age‘: 18, ‘adress‘: ‘北京市通州区幸福大街‘}
# # print(type(dict_pick_load)) #<class ‘dict‘>
# # f.close()
原文:https://www.cnblogs.com/shanshan-test/p/12635151.html