如果您的数据非常简单,例如字符串或数字集合的集合,我会使用 json. JSON是什么,是简单数据类型和简单数据类型组合的字符串表示。使用json 模块将数据转换为字符串后,您可以自己将其写入文件。
超级简单:
>>> my_data = [range(5) for i in range(5)]
>>> my_data
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
>>> import json
>>> json.dumps(my_data)
'[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]'
然后将该字符串写入文件。当你想重新加载它时,像这样:
>>> import json
>>> string_from_file
'[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]'
>>> my_saved_data = json.loads(string_from_file)
>>> my_saved_data
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
如果你的数据比较复杂,并且涉及到内置集合对象以外的类,pickle 是更好的选择。关于 pickle,需要了解的非常重要的一件事是,pickle 中存在安全漏洞,如果您自己没有 pickle 则解开任何内容是个坏主意。 pickle 容易受到本文详述的安全问题的影响:http://www.kalzumeus.com/2013/01/31/what-the-rails-security-issue-means-for-your-startup/
如果您的数据非常大,或者您将经常保存/加载它,或者出于任何原因使用 json 并保存到本地文件是不够的,那么数据库将是您的最佳选择。