将数据插入数据库时​​获取TypeError

时间:2012-06-25 05:44:30

标签: python mysql typeerror

首先,我以大学元组的形式从大学网站中提取了一系列大学:

(('name1','address1'),('name2','address2'),('name3','address3'))

然后我想写一个名为'sample'的数据库和表'collegelist'。表有两个字段(名称varchar(400)not null,address varchar(500)):

以下是代码:

for college in tuples:
   cursor.execute('INSERT INTO collegelist (name, address) VALUES ("%s", "%s")') %(college[0], college[1])
   db.commit()
db.close()

但它总是给出以下TypeError:

TypeError: unsupported operand type(s) for %: 'long' and 'tuple'

我也试过只插入名字并留下地址然后我得到以下类型错误:

TypeError: unsupported operand type(s) for %: 'long' and 'str'

现在我不明白'long'类型来自哪里。程序中只有字符串和元组。

  

注意:大学的名称和地址有单引号,双引号,短划线,句号。

为什么会出现此错误,如何将其删除?提前谢谢。

1 个答案:

答案 0 :(得分:1)

cursor.execute('INSERT INTO collegelist (name, address) VALUES ("%s", "%s")') <--

此时,您已关闭对execute的通话。此外,您应该将参数传递给execute,永远不要将它们解析为查询。

q_insert = "INSERT INTO collegelist (name,address) VALUES (%s,%s)"
for college in tuples:
    cursor.execute(q_insert,(college[0], college[1]))
    db.commit()