使用';一键多值';使用Python在SQLite3数据库中输入

使用';一键多值';使用Python在SQLite3数据库中输入,python,sqlite,Python,Sqlite,我有一个包含许多不同条目的文本文件。我想做的是取第一列,使用每个唯一值作为键,然后将第二列作为值存储。事实上,我已经有了工作,但我正在寻找更好的方法。以下是我的示例文件: account_check:"login/auth/broken" adobe_air_installed:kb_base+"/"+app_name+"/Path" adobe_air_installed:kb_base+"/"+app_name+"/Version" adobe_audition_installed:'SMB

我有一个包含许多不同条目的文本文件。我想做的是取第一列,使用每个唯一值作为键,然后将第二列作为值存储。事实上,我已经有了工作,但我正在寻找更好的方法。以下是我的示例文件:

account_check:"login/auth/broken"
adobe_air_installed:kb_base+"/"+app_name+"/Path"
adobe_air_installed:kb_base+"/"+app_name+"/Version"
adobe_audition_installed:'SMB/Adobe_Audition/'+version+'/Path'
adobe_audition_installed:'SMB/Adobe_Audition/'+version+'/ExePath'
下面是我用来解析文本文件的代码:

val_dict = {}

for row in creader:
    try:
        value = val_dict[row[0]]
        value += row[1] + ", "
    except KeyError:
        value = row[1] + ", "
    val_dict[row[0]] = value

for row in val_dict.items():
    values = row[1][:-1],row[0]
    cursor.execute("UPDATE 'plugins' SET 'sets_kb_item'= ? WHERE filename= ?", values)
下面是我当前用于查询+格式化数据的代码:

def kb_item(query):
    db = get_db()
    cur = db.execute("select * from plugins where sets_kb_item like ?", (query,))
    plugins = cur.fetchall()
    for item in plugins:
        for i in item['sets_kb_item'].split(','):
            print i.strip()
以下是输出:

kb_base+"/Installed"
kb_base+"/Path"
kb_base+"/Version"
我尝试了很多次,但最终还是得到了我想要的结果,不过我还是希望得到批评。有更好的方法吗?我的整个
是否可以用于插件中的项。。。。打印i.strip()
是否可以在一行中完成并保存为变量?我对使用数据库非常陌生,我的python技能也需要更新


注意:我在这段代码中使用csvreader是因为我最初有一个.csv文件,但是我发现它和我提供的.txt文件一样容易使用。

我建议您使用类似sqlite或peewee的ORM。。。还提供了一个更简单的代码示例。。。事实上,我甚至无法越过文本墙说出你在做什么对不起-我只是想提供尽可能多的细节,但我可以看出这是一个相当大的文本墙。我建议你使用类似sqlite或peewee的ORM。。。还提供了一个更简单的代码示例。。。事实上,我甚至无法越过文字墙说出你在做什么对不起,我只是想提供尽可能多的细节,但我可以看出这是一个相当大的文字墙。