首页 > 解决方案 > 如何从python中的csv生成每一行的插入语句?

问题描述

我正在创建一个脚本,我正在从 csv 文件中读取并迭代 csv 文件中的所有行,但我需要帮助来生成每一行的插入语句,并且我还将它输出到一个文件中。所以我唯一的问题是每一行的生成插入语句。谢谢您的帮助。

这是我的代码:

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()

标签: pythoncsv

解决方案


以此为例,您可以从中工作。您需要存储重新格式化值的每一行,然后将所有这些组合起来。

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)

推荐阅读