将二维数组的前 3 个元素插入 MySql 数据库
Insert first 3 elements of 2D array into MySql Database
我有一个包含数据的列表,例如
infoarray[['1.', 'Name1', 'details1, '...', '...', '....'], ['2.', 'Name2, 'details2', '...', '...', '...'], ['3.', 'Name3', 'details3', '...', '...', '...']...]
我只想将前 3 个条目添加到数据库 table 中,格式为
[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: not all arguments converted during string formatting"
这是假设意味着我的格式错误。我对 python 比较陌生,所以我非常熟悉使用 pymysql 的细微差别。
发生这种情况是因为您在查询中设置了 3 个值的格式,但每个数组项传递的元素超过 3 个。
尝试将您的 executemany
呼叫更改为:
cur.executemany("""
INSERT INTO
myTable
(place, name, details)
VALUES
(%s, %s, %s)
""", [a[:3] for a in infoarray])
这样您将只获得每个数组项中的前 3 个元素并将其传递给 executemany
我有一个包含数据的列表,例如
infoarray[['1.', 'Name1', 'details1, '...', '...', '....'], ['2.', 'Name2, 'details2', '...', '...', '...'], ['3.', 'Name3', 'details3', '...', '...', '...']...]
我只想将前 3 个条目添加到数据库 table 中,格式为
[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: not all arguments converted during string formatting" 这是假设意味着我的格式错误。我对 python 比较陌生,所以我非常熟悉使用 pymysql 的细微差别。
发生这种情况是因为您在查询中设置了 3 个值的格式,但每个数组项传递的元素超过 3 个。
尝试将您的 executemany
呼叫更改为:
cur.executemany("""
INSERT INTO
myTable
(place, name, details)
VALUES
(%s, %s, %s)
""", [a[:3] for a in infoarray])
这样您将只获得每个数组项中的前 3 个元素并将其传递给 executemany