Python 到 SQL : list of lists

标签 python mysql mysql-python

我目前在将 python 列表列表导出到 mySQL 数据库时遇到问题。 我正在使用 MySQLdb 并使用 executemany 命令。

比如我有一个list列表:

k1=[[['Bob', 'Alfred', 'Jen'],
['123 Elm Street', '55 Ninth Ave', '1 Paved Rd'],
[00123, 34565, 30094],
['Newark', 'Salinas', 'Los Angeles'],
['NJ', 'CA', 'CA']],[['Bob1', 'Alfred1', 'Jen1'],
['123 Elm Street1', '55 Ninth Ave1', '1 Paved Rd1'],
[001231, 345651, 300941],
['Newark1', 'Salinas1', 'Los Angeles1'],
['NJ1', 'CA1', 'CA1']]]

然后我尝试(在初始化游标和要使用的数据库之后):

cursor.executemany('''INSERT INTO addresses
                 (name, street, zipcode, city, state)
                 VALUES
                 (%s, %s, %s, %s, %s)''',zip(k1))

我得到一个错误:

 _mysql_exceptions.ProgrammingError: not enough arguments for format string

好吧,基本上,我想要从列表 k1 到 mySQL 数据库表“地址”的名称、街道、邮政编码、城市和州以及相应的字段条目。

如果有人能指出我正确的方向,那就太好了。

最佳答案

你的数据结构真的很尴尬。我假设您想将 k1 转换为:

>>> sum([zip(*x) for x in k1], [])
<<< 
[('Bob', '123 Elm Street', 83, 'Newark', 'NJ'),
 ('Alfred', '55 Ninth Ave', 34565, 'Salinas', 'CA'),
 ('Jen', '1 Paved Rd', 30094, 'Los Angeles', 'CA'),
 ('Bob1', '123 Elm Street1', 665, 'Newark1', 'NJ1'),
 ('Alfred1', '55 Ninth Ave1', 345651, 'Salinas1', 'CA1'),
 ('Jen1', '1 Paved Rd1', 300941, 'Los Angeles1', 'CA1')]

现在你可以执行很多:

sql = "INSERT INTO addresses (name, street, zipcode, city, state) VALUES (%s, %s, %s, %s, %s)"
data = sum([zip(*x) for x in k1], [])
cursor.executemany(sql, data)

关于Python 到 SQL : list of lists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5905721/

相关文章:

python - 在 Mac OS X Lion 上设置 MySQLdb 以支持 Django 时遇到问题

python - 类型错误 : 'int' object is not iterable - Python

php - 如何将索引重置为0

php - 如何通过为所有条目添加自定义名称来更新所有记录

mysql - 如何更新 MySQL 中 1and1 域中的表?

python - mysqldb-python 并没有真正更新原始数据库

python - 使用 for 循环创建多个注释

python - 自动化 : Script to take a mysqldump into a file named by date/time of backup

python - Django 如何查看生成的 SQL 查询?

python - 有没有办法在 python pandas 中通过操作来对一组进行逆运算?