使用Python进行基本数据存储

erk*_*gur 5 python database data-storage

我需要存储他们购买的客户和汽车的基本数据以及这些汽车的付款时间表.这些数据来自GUI,用Python编写.我没有足够的经验来使用像sql这样的数据库系统,所以我想将我的数据作为纯文本存储在文件中.而且它不必在线.

为了能够搜索和过滤他们,首先我我的数据(名单列表)转换为字符串然后当我需要的数据重新转换到正规Python列表语法.我知道这是一种非常蛮力的方式,但这样做是否安全或者你能以另一种方式建议我吗?

ntc*_*ong 8

以文本格式(或使用pickle或其他)保存数据库永远不安全.保存数据时存在问题可能导致损坏.更不用说你的数据被盗的风险了.

随着数据集的增长,性能可能会受到影响.

看看sqlite(或sqlite3),它比mysql更小,更易于管理.除非您有一个非常小的数据集,它将适合文本文件.

P/S:顺便说一句,在python中使用berkeley db很简单,你不必学习所有数据库的东西,只需要导入bsddb


g.d*_*d.c 5

使用泡菜的答案很好,但我个人更喜欢搁置.它允许您将变量保持在启动之间的相同状态,我发现它比直接使用pickle更容易. http://docs.python.org/library/shelve.html


小智 5

我同意其他人严肃和重要的数据将是某种类型的光的数据库更安全,但也能感受到同情希望让事情变得简单和透明.

因此,我建议您使用YAML,而不是发明自己的基于文本的数据格式

该格式是人类可读的,例如:

List of things:
    - Alice
    - Bob
    - Evan
Run Code Online (Sandbox Code Playgroud)

你加载这样的文件:

>>> import yaml
>>> file = open('test.yaml', 'r')
>>> list = yaml.load(file)
Run Code Online (Sandbox Code Playgroud)

列表将如下所示:

{'List of things': ['Alice', 'Bob', 'Evan']}
Run Code Online (Sandbox Code Playgroud)

当然,你可以做反向太和保存数据到YAML,该文档会帮你.

至少另一个考虑的选择:)