我有一个数据列表,比如
infoarray[['1.', 'Name1', 'details1, '...', '...', '....'], ['2.', 'Name2, 'details2', '...', '...', '...'], ['3.', 'Name3', 'details3', '...', '...', '...']...]
我只想用以下格式将前3个条目添加到数据库表中
[PLACE],[NAME],[DETAILS]
应该比较简单。数据已经排序,我只需将每个内部数组的前3个元素附加到数据库中即可。我尝试了以下代码,但我得到了一个错误。
//using pymysql
cur = conn.cursor()
cur.executemany("""
INSERT INTO
myTable
(place, name, details)
VALUES
(%s, %s, %s)
""", infoarray)
db.commit()
cur.close()
conn.close()
错误是“typeerror:不是所有参数在字符串格式化过程中都转换了”,这意味着我的格式是错误的。我对python比较陌生,所以我非常熟悉使用pymysql的细微差别。
1条答案
按热度按时间0pizxfdo1#
这是因为您正在格式化查询中的3个值,但每个arrayitem传递的元素多于3个。
试着改变你的习惯
executemany
呼叫:这样,您将只获得每个数组项中的前3个元素,并将其传递给
executemany