复制和修改元组列表

2024-10-01 19:20:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过从一个查询创建一个元组列表,创建一个包含需要更改的数据的元组列表,然后将该元组列表插入到SQL中来重建SQL表。我好像什么都记下来了,除了一部分。当我重新创建列表时,SQL查询中可能有任意数量的列,我需要对此进行补偿。唯一需要更改的值是每个元组中的第一个值。以下是我目前掌握的代码:

import pymysql

cnx=pymysql.connect(dbstuff)  
cursor=cnx.cursor()
cursor.execute("SELECT * FROM og_tbl ORDER BY ip_addr,Port ASC")
results=cursor.fetchall()

i=1
list=[]
for line in results:
    list.append((i,line[1:]))
    i += 1
values = ', '.join(map(str,list))
query="INSERT INTO tmp_tbl VALUES {}".format(values)
cursor.execute(query)
cnx.commit()
cnx.close()

这将给出每个元组的结果,如下所示。我不知道如何做不同的事情,使括号只在每个元组的外面

(1, (sqlstuff)),(2, (sqlstuff)), etc


Tags: 数据列表executesqllinequerycursorresults
1条回答
网友
1楼 · 发布于 2024-10-01 19:20:22

元组的切片将返回一个元组,该元组在附加之前插入另一个元组。您应该将新值作为元组添加到切片中

我将for循环替换为列表理解,并从1开始使用enumerate生成新值:

lst = [(i,)+line[1:] for i, line in enumerate(results, 1)]

另一方面,请注意不要使用名称list,因为它已经被内置使用了

相关问题 更多 >

    热门问题