Python &引用;没有这样的专栏“;检查表列时

Python &引用;没有这样的专栏“;检查表列时,python,sqlite,Python,Sqlite,我正在创建一个表来向数据库添加数据,但我不确定在哪里创建“电子邮件”列。我的最终目标是能够输入用户名(电子邮件)和密码,并将其保存到数据库中,但我不知道如何做到这一点。这是我目前的代码: import sqlite3 def save_to_database(my_stack, filename = 'stack_database.db'): conn = sqlite3.connect(filename) c = conn.cursor() for row in

我正在创建一个表来向数据库添加数据,但我不确定在哪里创建“电子邮件”列。我的最终目标是能够输入用户名(电子邮件)和密码,并将其保存到数据库中,但我不知道如何做到这一点。这是我目前的代码:

import sqlite3

def save_to_database(my_stack, filename = 'stack_database.db'):

    conn = sqlite3.connect(filename)
    c = conn.cursor()

    for row in c.execute('SELECT email FROM sqlite_master WHERE type="table"'):
        if row != None:
            c.execute("DROP TABLE emails")

    c.execute("CREATE TABLE emails(email text,login_date text)")
    ...

sqlite_master
表没有名为
email
的列;整个表结构包含在
sql
列的文本中

您可以检查表名本身(但请注意,如果找不到行,则不会返回任何行,甚至不会返回空行,因此尝试使用
for
循环来处理此问题是没有意义的):

但是,有一种更简单的方法可以确保删除表,而不管其以前的状态如何:

c.execute('DROP TABLE IF EXISTS emails')

这真的很难读;缩进在第一个代码块中出错。能否请您a)将代码缩减为您认为相关的代码(所有
print
语句都不相关)和b)包括堆栈跟踪,以便我们可以实际查看导致错误的行?换句话说,一个
c.execute('DROP TABLE IF EXISTS emails')