虽然与Sqlite3真的

问题描述:

我有一些问题,在sqlite3发送数据。这是我的代码:虽然与Sqlite3真的

date = raw_input("Enter date: ") 

f_name = [] 
s_name = [] 

def enter(): 
    while True: 
     f = raw_input("Enter name: ") 
     e = raw_input("Enter second name: ") 

     if len(f) == 0: 
      break 
     elif len(e) == 0: 
      break 
     else: 
      a = f 
      f_name.append(a) 
      y = e 
      s_name.append(y) 

    zipped = zip(f_name, s_name) 

    c.executemany("INSERT INTO test_table(first_name, " 
       "second_name, date) VALUES(?, ?, ?)", 
       (zipped, date)) 
    conn.commit() 

create_table() 
enter() 
conn.close() 

只有我需要的是,尽管这是事实循环必须工作,直到停止,并在循环的每次迭代,发送到数据:名字,第二个名字和日期。

+0

你永远不指定任何东西'f_name'和's_name'。 –

+0

你为什么要压缩列表?是否需要插入sqlite? –

+0

那么我如何插入,如果我不会压缩列表? – roman

您需要使用其他2个while循环您while True里面,看看下面的代码:

my_date = raw_input("Enter date: ") 

f_name = [] 
s_name = [] 

def enter(): 
    while True: 
     fn = raw_input("Enter name: ") 
     while not fn: # You do not need to use len(fn) == 0 
      fn = raw_input("Enter name: ") 

     sn = raw_input("Enter second name: ") 
     while not sn: 
      sn = raw_input("Enter second name: ") 

     f_name.append(fn) 
     s_name.append(sn) 

    zipped = zip(f_name, s_name) 
    zipped = [item + (my_date,) for item in zipped] # You need to my_date to each item in zipped 

    c.executemany(""" 
     INSERT INTO test_table ('first_name', 'second_name', 'date') 
     VALUES(?, ?, ?)""", zipped) 
    # ... 
+0

错误:sqlite3.ProgrammingError:提供的绑定数量不正确。目前的声明使用3,并且有1提供 – roman

+0

@roman看看我编辑的答案。 – ettanany

+0

工作!谢谢你的帮助! – roman