pickle
:
从好的方面来说,它可以处理任意对象(具有不同的工作级别)。在负面,平面格式不是人类可读的,并且它不应该与不受信任的输入一起使用。还有版本问题;有各种不同的协议定义。
json
:
在一些容器(dict
,list
)和值(字符串和数字)对象和JSON之间来回移动很容易。它通常也是人类可读的(受"漂亮" 格式化),被大多数(全部?)语言广泛使用和良好支持。但它不能像酸洗那样处理任意对象。
csv
:
可以说是最简单的格式,但不会很好地处理嵌套,同时保持可读性和易于解析(它可能最适合持久化简单表格)。与JSON或pickle
相比,来回转换的工作通常更多。