【问题标题】:How to insert several lists into sqlite column如何将多个列表插入到 sqlite 列中
【发布时间】:2016-08-04 16:33:31
【问题描述】:

我要将以下列表中的信息插入到 sqlite 列中:

a = [1, 2, 3]
b = ['MAR', 'PAR', 'ZAR']
c = [1000, 2000, 3000]

数据库的AA列应该有列表a中的信息,BB列应该有列表b中的信息,CC列应该有列表c中的信息。

这是我的代码:

import sqlite3
conn= sqlite3.connect('test.db') 
c = conn.cursor()

def create_table ():     
    c.execute ('CREATE TABLE IF NOT EXISTS test (AA INT, BB TEXT, CC INT)')
    print ("table was created")

create_table ()

a = [1, 2, 3]
b = ['MAR', 'PAR', 'ZAR']
c= [1000, 2000, 3000]

for i in range (len (a)):
    I= a[i]
    II= b[i]
    III= c[i]
    c.execute  ("INSERT INTO TEST (AA, BB, CC) VALUES  (?,?,?) ", I, II, III )

错误是这样的:

c.execute  ("INSERT INTO TEST (AA, BB, CC) VALUES  (?,?,?) ", I, II, III )
AttributeError: 'list' object has no attribute 'execute'

【问题讨论】:

    标签: python sqlite python-3.x insert-into


    【解决方案1】:

    您已经遮蔽了c 变量。它不再引用打开的光标:

    c = conn.cursor()
    # ...
    c = [1000, 2000, 3000]
    

    这是拥有有意义的变量名的众多原因之一。如果您将光标命名为cursor,我怀疑您会犯此错误:

    cursor = conn.cursor()
    

    还要注意,像 PyCharm 这样的现代 IDE 能够及早发现这些错误:

    【讨论】:

      猜你喜欢
      • 2021-05-28
      • 2021-07-18
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 2010-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多