Python 如何从SQL数据库中获取数据?(故障排除)

Python 如何从SQL数据库中获取数据?(故障排除),python,sqlite,Python,Sqlite,我使用SQLite查询创建了表,如下所示: import sqlite3 as lite import sys con = lite.connect('Records.db') with con: cur = con.cursor() cur.execute("CREATE TABLE Users(User_Id INTEGER PRIMARY KEY, Username STRING, Password STRING, Acc_Type STRING, First_

我使用SQLite查询创建了表,如下所示:

import sqlite3 as lite
import sys

con = lite.connect('Records.db')

with con:
    cur = con.cursor()    
    cur.execute("CREATE TABLE Users(User_Id INTEGER PRIMARY KEY, Username STRING, Password STRING, Acc_Type STRING, First_Name STRING, Surname STRING, Class STRING, FullName STRING)")
    cur.execute("INSERT INTO Users VALUES(1, 'Admin', 'PassWord567', 'Admin', '', 'Admin', 'None', 'Admin')")
    cur.execute("INSERT INTO Users VALUES(2, 'HamzahA12', 'password', 'Student', 'Hamzah', 'Akhtar', '13E2', 'Hamzah Akhtar')")
    cur.execute("CREATE TABLE Questions(Question_Id INTEGER PRIMARY KEY, Question STRING, Answer STRING, Mark INTEGER, Topic STRING, Incorrect STRING, QType STRING)")
    cur.execute("INSERT INTO Questions VALUES(1, 'What is 2/3 of 6?', '4', '1', 'Fractions', 'None', 'Numerical')")
    cur.execute("INSERT INTO Questions VALUES(2, 'What is 5/4 of 20?', '25', '1', 'Fractions', 'None', 'Numerical')")
    cur.execute("CREATE TABLE Tests(Test_Id INTEGER PRIMARY KEY, TestName STRING, TotalMarks INTEGER, Calculator STRING)")
    cur.execute("INSERT INTO Tests(TestName) VALUES('Test 1')")
    cur.execute("INSERT INTO Tests(TestName) VALUES('Test 2')")
但是,在获取数据时,由于某种原因,我可以从用户表或问题表中获取数据,但不能从测试表中获取数据。我使用以下代码从表中获取数据:

con = lite.connect('Records.db')
            with con:
                cur = con.cursor()
                cur.execute("SELECT TestName FROM Tests")
                rows = cur.fetchall()
                for row in rows:
                    Testname = str(row)
                    Testname = Testname[2:-3]
                    print(Testname)
在获取数据的代码中,我使用
[2:-3]
从获取的数据中删除撇号和括号。
由于某些原因,在获取时,它返回
[]
。关于我做错了什么有什么想法吗??顺便说一句,当使用相同的方法(包括
[2:-3]
)从其他表(如问题表或用户表)获取数据时,没有问题…?

列表转换为字符串,然后删除该转换生成的标点,这是一种极其人为的提取值的方法

只需直接从行中提取值:

for row in rows:
    testname = row[0]
    ...

我使用以下方法来解决我的问题:(使用
TestName
插入
Test\u Id


在向测试表中插入值的同时,尝试通过测试Id。谢谢…它工作了…尽管我不知道为什么?在将数据插入表中时,我假定它已经将Id添加为整数PK??
cur.execute("CREATE TABLE Tests(Test_Id INTEGER PRIMARY KEY, TestName STRING, TotalMarks INTEGER, Calculator STRING)")
cur.execute("INSERT INTO Tests(Test_Id, TestName) VALUES(1, 'Test 1')")
cur.execute("INSERT INTO Tests(Test_Id, TestName) VALUES(1, 'Test 2')")