如何在python中从csv生成每行的insert语句?

2024-09-27 23:19:42 发布

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

我正在创建一个脚本,从csv文件中读取并迭代csv文件中的所有行,但我需要帮助生成每行的insert语句,并将其输出到一个文件中。所以我唯一的问题是每行的generate-insert语句。谢谢你的帮助

这是我的密码:

import csv
openFile = open('data.csv', 'r')
csvFile = csv.reader(openFile)
header = next(csvFile)
headers = map((lambda x: '`' + x + '`'), header)
insert = 'INSERT INTO my_table (' + ", ".join(headers) + ") VALUES "
l = [*range(0, 59, 1)]
for row in csvFile:
 values = list(row[i] for i in l)
 print(values)
data = insert + "(" + ", ".join(values) + ");"
print(data)
createOnFile = open("data.txt","w+")
createOnFile.write(data)
createOnFile.close()
openFile.close()

Tags: 文件csvcsvfilefordata语句openheaders
1条回答
网友
1楼 · 发布于 2024-09-27 23:19:42

以这个为例,你可以从中学习。您需要存储重新格式化值的每一行,然后合并所有这些内容

csvFile = [
        ['columnA', 'columnB'],
        ['a1', 'b1'],
        ['a2', 'b2'],
]
header = csvFile[0]
headers = map((lambda x: '`' + x + '`'), header)
insert = 'INSERT INTO my_table (' + ", ".join(headers) + ") VALUES "
values = []
for row in csvFile[1:]:
    values.append('(' + ','.join(map(lambda x: '"%s"' % x,  row)) + ')')

data = insert + ', '.join(values)
print(data)

相关问题 更多 >

    热门问题