脚本,我从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 "
values = []
for row in csvFile:
#this line below
values.append('(' + ','.join(map(lambda x: '"%s"' % x, row)) + ')')
data = insert + ("".join(values))
print(data)
createOnFile = open("data.txt","w+")
createOnFile.write(data)
createOnFile.close()
openFile.close()
您可以执行以下操作:
("insert into myTable(col1, col2) values(?,?)", [value1, value2])
因此,在每一行中,您将从cdv行提取数据,并将值插入表中
似乎您要做的是从源CSV读取数据,然后将相应的
INSERT
SQL语句写入文件,以便您可以将其直接传递给DBMS您的代码当前存在的一些问题是:
values.append
将建立CSV每一行的值,因此插入的每个元组也将包含以前的所有元组数据,而这不是您想要的;
来终止每个SQL语句解决上述问题后,您的代码大致如下所示:
注意,我还修改了代码以使用f-strings而不是字符串串联&;还将
map
的用法改为list comprehensions,在本例中更简洁相关问题 更多 >
编程相关推荐