从sqlite3拆分值

时间:2015-04-14 14:18:38

标签: python sqlite split

这是我的A2计算项目。我希望这段代码从PupilPremiumTableNew和PupilTable获取数据,其中PupilID等于将从另一个函数获得的输入,并且将等于AllID。多个PupilID可以立即传递给函数,这就是为什么AllID是一个迭代的列表,这意味着程序可以在函数的一次调用中找到多个学生,而不仅仅是一个。

从PupilTable和PupilPremiumNew收集的数据将被合并(如代码中所示),然后传递到表格(A下载添加到python,这使我可以轻松地显示表格并且看起来相当不错)。然而,目前表格认为每个数字(包括和左边的括号)都是单独的输入,所以我最终将数据分布在多个列中。 我想,问题在于AllInfo的括号和/或数据类型。我不知道该怎么做,我已经尝试了很多东西,但它们没有用,比如使用连接和拆分,虽然我可能错误地使用了它们。

    while Count < Length:
    PupilID = AllID[Count]
    PupilID = str('.'.join(str(x) for x in PupilID))
    with sqlite3.connect("PupilPremiumTableNew.db") as db:
        cursor = db.cursor()
        cursor.execute("SELECT * FROM PupilPremiumTableNew where PupilID =?",(PupilID,))
        AllPupils = str(cursor.fetchone())
        cursor.execute("SELECT PupilSurname, PupilName, SeasonOfBirth,SpecialEducationalNeeds,YearGroup FROM PupilTable where PupilID =?",(PupilID,))
        PupilTableInfo = str(cursor.fetchall())
        if AllPupils == 'None':
            Count = Count + 1
        else:
            AllInfo = [PupilTableInfo + AllPupils]
            Count = Count + 1
            print(AllInfo)

返回的信息是:

["[('Meow', 'James', 'Spring', 'y', 1)](1, '1a', '1a', '1a', 'Autumn', 1, 'Small groups', 'Large groups', 'One on one', 1)"]

来自两个文件,PupilTable和PupilPremiumTableNew。这些都是关系数据库,但我认为这不是必要的。

谢谢,如果你想要制表输出评论,请求它,我没有把它放入,因为我认为它不相关,因为这不是表格的错误但是括号。

感谢Devilb77

1 个答案:

答案 0 :(得分:0)

在与一些朋友交谈之后,我意识到我想在sqlite3中使用内部联接。任何有类似问题的人都应该查看内部联接是什么以及其他两种类型的联接。它使这更加简单。

由于 Devilb77