我正在编写 Python 应用程序。现在我想允许用户将他或她的项目数据保存到文件中。现在我被一个设计决定困住了,在 Python 中保存数据的最佳格式是什么?
据我所知,内置的替代方案是 JSON 和 XML,众所周知,XML 永远不是答案,甚至不是问题。如果我以后要向文件中添加更多数据,我希望有一种易于使用且易于向后兼容的格式。
有任何想法吗?
如果您只有 python 数据,那么轻松存储和访问它的好方法是使用 python 自己的名为 pickle 的库。除非您需要将数据传递到其他平台,否则它比使用 JSON 更好。而且它也很容易使用,就像这样:
import pickle
mydata = {'1': 'hello', '2': 'world'}
output = open('data.pkl', 'wb')
pickle.dump(data, output)
output.close()
重新打开文件时,执行以下操作:
pkl = open('data.pkl', 'rb')
data = pickle.load(pkl)
当然,如果这就是你所做的一切,最好使用 CPickle,它的行为相同但速度非常快(因为它是用 C 实现的)。CPickle 的缺点是不够灵活。有关 Pickle 的更多信息,您应该查看 pydocs
我建议你使用 JSON。它是当今支持、存储和操作任何形式的用户数据的方式。它是跨平台的,并且没有使用 XML 带来的额外开销。JSON 对程序员也很友好,因为您不必像使用 XML 那样完全解析用户数据。