将python脚本中的数据添加到mysql数据库中

时间:2014-11-09 10:27:42

标签: python mysql

我想知道是否有人可以帮我弄清楚为什么我的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排,而是只插入两排。 请帮帮忙?!

1 个答案:

答案 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()