sql嵌入python的好处_使用Python进行多个SQL插入

UPDATE

根据Nathan的建议传递execute()行列表后,代码执行得更远,但仍然卡在执行函数上.错误消息显示:

query = query % db.literal(args)

TypeError: not all arguments converted during string formatting

所以它仍然无法正常工作.有人知道为什么现在有类型错误吗?

结束更新

我有一个.xls格式的大型邮件列表.我使用python和xlrd从xls文件中检索名称和电子邮件到两个列表.现在我想把每个名字和电子邮件放到一个mysql数据库中.我正在使用MySQLdb这部分.显然,我不想为每个列表项执行insert语句.

这是我到目前为止所拥有的.

from xlrd import open_workbook, cellname

import MySQLdb

dbname = 'h4h'

host = 'localhost'

pwd = 'P@ssw0rd'

user = 'root'

book = open_workbook('h4hlist.xls')

sheet = book.sheet_by_index(0)

mailing_list = {}

name_list = []

email_list = []

for row in range(sheet.nrows):

"""name is in the 0th col. email is the 4th col."""

name = sheet.cell(row, 0).value

email = sheet.cell(row, 4).value

if name and email:

mailing_list[name] = email

for n, e in sorted(mailing_list.iteritems()):

name_list.append(n)

email_list.append(e)

db = MySQLdb.connect(host=host, user=user, db=dbname, passwd=pwd)

cursor = db.cursor()

cursor.execute("""INSERT INTO mailing_list (name,email) VALUES (%s,%s)""",

(name_list, email_list))

光标执行时的问题.这是错误:_mysql_exceptions.OperationalError:(1241,’操作数应该包含1列’)我最初尝试将我的查询放入var中,但之后它只是关于将元组传递给execute()的消息.

我究竟做错了什么?这甚至可能吗?

列表很大,我绝对无法将插入放入循环中.我看着使用LOAD DATA INFILE,但我真的不明白如何格式化文件或查询,当我必须阅读MySQL文档时,我的眼睛流血.我知道我可以使用一些在线xls到mysql转换器,但这对我来说也是一个学习练习.有没有更好的办法?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值