列表中的数据库元组

时间:2015-04-29 18:39:02

标签: python sql database sqlite tuples

我有一个程序,为学生运行数学测试,然后将他们的分数存储在一个数据库中,以后可以阅读该数据库对课程进行排序并阅读以前的学生分数。

首次将第一个分数插入数据库时​​,它可以正常工作,但是当插入第二个分数时,我可以看到[(6,), 6]在数据库中。我不明白为什么一个是元组而另一个是整数(我对元组不是很熟悉)。为什么我(或我怎么能)不能拥有它,以便在从数据库中读取列表时返回[6,6]

代码是每个学生总共有3个分数。这是将分数写入数据库的函数。

def scoreText(name, classNo, score): 
    myFile = sqlite3.connect("scores.db") 
    c = myFile.cursor()

    c.execute('SELECT score FROM scores WHERE name = (?) AND classNo = (?)', (name, classNo,)) 
    scores = c.fetchall()
    print(len(scores))

    if len(scores) == 0:
        print(scores)
        c.execute('INSERT INTO scores(score, name, classNo) VALUES(?,?,?) ', (score, name, classNo,))       
    elif len(scores) == 3:
        del scores[0]
        scores.append(score)
        #scores = ', '.join(map(str, scores))
        print(scores)
        c.execute('UPDATE scores SET score = (?) WHERE name = (?) AND classNo = (?)', (score, name, classNo,))
    else:
        scores.append(score)
        print(scores)
        c.execute('UPDATE scores SET score = (?) WHERE name = (?) AND classNo = (?)', (score, name, classNo,))

    myFile.commit()
    myFile.close()
    scoreText("jason", 1, 6)

0 个答案:

没有答案