Python:许多人的数据 - 如何构建?

时间:2014-09-19 10:21:19

标签: python class dictionary

我目前正在开展一个项目,我从政府网站上提取有关人员的数据。我已经提取了数据,但现在我需要存储它。我不是一个高级编程,所以我希望这里的人能给我建议。

对于每个人,我有以下信息: 名称,当前(主要)功能/工作(可以大于1),附加功能,以前的工作。

将列表放在列表中这给我带来了麻烦,所以链接到大纲的图片:

enter image description here

我正在考虑使用一个类,为每个人轻松生成信息树。我想把类的实例放在一个数组中,以便我可以计算我的数组中有多少人。我还想知道有多少主要工作,有多少副业,并与时间做一些比较(例如,有人在开始主要工作之前有多少副工作)。

可搜索的部分是我遇到的问题。我不知道最好是使用类,字典,还是字典中包含类实例的字典。

最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

映射Person和Job类是一个好的开始。但是,您所询问的问题可以通过关系数据库得到很好的解答,因为您的数据似乎非常适合这些类型的数据库。

您有一个Jobs表和一个Persons表,其中一个人可能有多个作业(您需要在Jobs表中使用person_id等引用)。对我来说不太清楚的是,如果作业,副作业和以前作业之间存在足够的差异来证明多个表的合理性,那么类型列可能足以区分。

由于您似乎匆忙,我真的建议您查看dataset

import dataset

db = dataset.connect('sqlite:///:memory:')
persons_table = db['persons']
persons_table.insert(dict(name='Jolien'))

jobs_table = db['jobs']
jobs_table.insert(dict(place='Mall', start_date=2012, type=1, salary=20000, person_id=1))

然后您可以使用原始SQL提问:

res = db.query('SELECT count(*) FROM jobs WHERE person_id = 1 AND type = 2')