从Python中的数据库查询中读取和显示文本文件中的数据

时间:2014-08-11 19:23:26

标签: python mysql sql python-3.x pydev

我是python中的新手,我遇到了python中的数据库引擎问题

我有文本文件数据库表(person.text),在python中分隔符(|)。例如

sue|45|Happy Lane|456-3245
John|43|67 Drury Lane|897-3456
Mark|21|Stuffy Street|345-7896

现在我想要一个从用户那里获取查询并从该文本文件中获取数据并显示的功能。查询可以选择,更新(有或没有where子句)。

例如,如果用户将输入作为“从人选择名称”,则输出将为

sue
John
Mark

我很困惑我应该使用哪种数据结构?

2 个答案:

答案 0 :(得分:0)

如果要维护当前基于文本的数据库,可能需要手动解析它,然后将其存储为本地字典(defaultdict使其变得简单)以允许关键字搜索。我添加了一个数字主键,以帮助以关键字搜索形式存储数据

from collections import defaultdict

person = defaultdict(lambda: dict())

with open("path/to/person.txt", "r") as f:
    primary_key = 0
    for line in f:
        data = line.split("|")
        person[primary_key]["name"] = data[0]
        person[primary_key]["age"] = data[1]
        person[primary_key]["address"] = data[2]
        person[primary_key]["pnum"] = data[3]
        primary_key += 1

然后你会有一个名为person的本地字典,可以使用最终用户输入的关键字进行搜索。

搜索:

query = "select name from person"

query_items = query.split(" ")

if query_items[0] == "select":
    table = eval(query_items[3])
    for value in table.values():
        print(value[query_items[1]])

答案 1 :(得分:0)

而不是data = f.split(“|”),它应该是data = line.split(“|”)。

我需要在用户输入中编写查询,然后必须通过代码进行解释。如果我使用上面的解决方案,那么如何将我的SQL查询与字典匹配?

由于