Python 中的 json 和 pickle
json的数据格式其实就是python里面的字典格式。在python中,有专门处理json格式的模块—— json和pickle模块。 在常见的深度学习任务中,通常可以使用 json或pickle模块存储图片路径或者标签的值。
json
import json
# 序列化
with open(save_path, 'w') as f:
json.dump(dic, f)
# 反序列化
with open(save_path, 'r') as f:
dic = json.load(f)
pickle
import pickle
# 存储
with open(save_path, 'wb') as f:
pickle.dump(dic, f, 1)
# 导入
with open(save_path, 'rb') as f:
dic = pickle.load(f)
json vs pickle
json:
优点:跨语言(不同语言间的数据传递可用json交接)、体积小
缺点:只能支持int\str\list\tuple\dict
- json 不支持ndarray
Object of type 'ndarray' is not JSON serializable
pickle:
优点:专为python设计,支持python所有的数据类型
缺点:只能在python中使用,存储数据占空间大