我想知道是否有人可以帮我弄清楚为什么我的python脚本收集的数据没有正确输入到mysql数据库
这是我的代码
/*** index is a dictionary that has the struture:
index = {links:[words], links: [words],.......} ***/
#There are multiple items in words
for k, v in index.iteritems():
links = str(k)
words = str(v) [1:-1]
import MySQLdb
db = MySQLdb.connect("localhost","root","","my_db" )
cursor = db.cursor()
try:
cursor.execute(('insert into SITE(url, keywords) values("%s", "%s")' % \
(links,words)))
db.commit()
except:
db.rollback()
db.close()
我表格中的每一行都应该有两个字段:网址和关键字 它不是插入6排,而是只插入两排。 请帮帮忙?!
答案 0 :(得分:1)
可能存在问题,因为您为每个项目打开了一个新连接。那么你不应该将值格式化为SQL语句,而是使用参数。第三,你不应该忽视异常,因为那样,你无法弄清楚,出了什么问题。列表的表示没什么,在生产代码中使用,而不是使用连接
import logging
import MySQLdb
db = MySQLdb.connect("localhost","root","","my_db" )
for links, words in index.iteritems():
cursor = db.cursor()
try:
cursor.execute('insert into SITE(url, keywords) values(%s, %s)', (links, ','.join(words)))
db.commit()
except Exception:
logging.exception('insert went wrong')
db.rollback()
db.close()