0

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

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

然后我想在名为“sample”的数据库和表“collegelist”中写这个。表有两个字段(名称 varchar(400) 不为空,地址 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: unsupported operand type(s) for %: 'long' and 'tuple'

我还尝试仅插入姓名并留下地址,然后出现以下类型错误:

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

现在我不明白“长”类型是从哪里来的。程序中只有字符串和元组。

:大学名称和地址有单引号、双引号、破折号、句号。

为什么会出现这个错误,我该如何删除它?提前致谢。

4

1 回答 1

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()
于 2012-06-25T05:49:42.997 回答