Len*_*ers 10 python serialization save
我上了一堂课,想要跟踪学生的统计数据.我打算稍后制作一个GUI来操作这些数据.
我的主要问题是:保存和以后检索此数据的最佳方法是什么?
我读过关于pickle和JSON的内容,但我并没有真正了解它们是如何工作的(特别是关于它们如何保存数据,比如在哪种格式和哪里).
Bre*_*own 11
如果您的数据非常简单,就像字符串或数字集合的集合一样,我会使用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]]'
Run Code Online (Sandbox Code Playgroud)
然后将该字符串写入文件.当你想重新加载它时,如下所示:
>>> 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]]
Run Code Online (Sandbox Code Playgroud)
如果您的数据更复杂,并且涉及除内置集合对象之外的类,那么pickle是更好的选择.关于泡菜的一个非常重要的事情是泡菜中存在安全漏洞,并且挑选你自己没有腌制的任何东西是个坏主意.pickle容易受到本文中详述的安全问题的影响:http://www.kalzumeus.com/2013/01/31/what-the-rails-security-issue-means-for-your-startup/
如果您的数据大小非常大,或者您经常保存/加载它,或者出于任何原因使用json并保存到本地文件是不够的,那么数据库将是最佳选择.
| 归档时间: |
|
| 查看次数: |
19862 次 |
| 最近记录: |