首先,我以大学元组的形式从大学网站中提取了一系列大学:
(('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'类型来自哪里。程序中只有字符串和元组。
注意:大学的名称和地址有单引号,双引号,短划线,句号。
为什么会出现此错误,如何将其删除?提前谢谢。
答案 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()