- json.dump() 用于将dict类型的数据转成str,并写入到json文件中。下面两种方法都可以将数据写入json文件。
- json.loads() 用于将str类型的数据转成dict。
- json.load() 用于从json文件中读取数据。
- Base64编码是一种“防君子不防小人”的编码方式,优点:速度快,ascii字符,肉眼不可理解。
- base64.b64encode() 将bytes类型数据进行base64编码(变为字母加数字),返回编码后的bytes类型。
- base64.b64decode() 将base64编码的bytes类型进行解码,返回解码后的bytes类型。
import base64 import pickle # 字典 dict1 = { 'count': "count", 'selected': True } def main(): # 转成bytes string dict2 = pickle.dumps(dict1) print('dumps:', dict2) # base64 编码 encode_str = base64.b64encode(dict2) print('b64encode:', encode_str) print('b64后使用decode:', encode_str.decode()) print('b64后使用encode:', encode_str.decode().encode()) decode_str = base64.b64decode(encode_str) loads_dict = pickle.loads(decode_str) print('b64后使用b64decode():', decode_str) print('b64后使用loads:', loads_dict) if __name__ == '__main__': main()
pickle 的用法类似于json
import json import pickle dict1 = { 'count': "count", 'selected': True } jsDumps = json.dumps(dict1) pkDumps = pickle.dumps(dict1) jsLoads = json.loads(jsDumps) pkLoads = pickle.loads(pkDumps) print(dict1) print(type(dict1)) print(jsDumps) print(type(jsDumps)) print(pkDumps) print(type(pkDumps)) print(jsLoads) print(type(jsLoads)) print(pkLoads) print(type(pkLoads))
pickle 只能在python中用python文件间序列化,实现了两个python 内存数据的交互(可序列化任何对象(类,列表、字典等))
json 在任何软件间可以在内存数据之间的交互,只能序列化常规的对象(列表 ,字典等)