如何解决在python中解包大列表
我必须打开这个大列表并将每个项目放入数据库。 除了这些数据外,一切都很好。
我试过:
([styles],[seasons],[day],[id]) = search_
但我收到这样的错误:
exception=ValueError('too many values to unpack (expected 4)')>
我使用这样的查询:
insert= "INSERT INTO cantina (styles,seasons,day,id) VALUES (?,?,?)"
db.execute(insert,(styles,id))
我知道我犯了一个错误,但这里每行有 4 个字段,似乎是正确的
search_ = [[["Redwine"],['04'],['01'],['81535']],[["Redwine"],['02'],['81536']],['03'],['81537']],['81538']],['05'],['81539']],['06'],['81540']],['07'],['81541']],['08'],['81542']],['09'],['81543']],['10'],['81544']],['11'],['81545']],['12'],['81546']],['97179']],['97180']],['97181']],['97182']],['97183']],['97184']],['97185']],['97186']],['97187']],['97188']],['97189']],['97190']]]
([styles],[id]) = search_
insert= "INSERT INTO cantina (styles,id))
编辑:
嗨 Barmar ,因为该列表来自我加入的另一个函数 四个列表:
def cantina ( cantina_id)
for ... in ...:
styles =
season =
day =
id =
result.append([[styles],[season],[id]]])
return result
和 'append' 只接受一个参数。
我必须根据'cantina_id'处理一些数据; 将其添加到四个列表中并保存到 db
解决方法
您需要遍历 search_
并分别处理每一行。
insert= "INSERT INTO cantina (styles,seasons,day,id) VALUES (?,?,?)"
for row in search_:
([styles],[seasons],[day],[id]) = row
cur.execute(insert,(styles,id))
db.commit()
如果您更改 cantina
函数使其不会创建所有这些单元素列表,您可以使用 executemany()
def cantina ( cantina_id)
result = []
for ... in ...:
styles =
season =
day =
id =
result.append([styles,season,id])
return result
search_ = cantina(some_id)
insert= "INSERT INTO cantina (styles,?)"
cur.executemany(insert,search_)
db.commit()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。