我试图通过从一个查询创建一个元组列表,创建一个包含需要更改的数据的元组列表,然后将该元组列表插入到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
元组的切片将返回一个元组,该元组在附加之前插入另一个元组。您应该将新值作为元组添加到切片中
我将for循环替换为列表理解,并从
1
开始使用enumerate
生成新值:另一方面,请注意不要使用名称
list
,因为它已经被内置使用了相关问题 更多 >
编程相关推荐