python - 如何从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()
解决方案
以此为例,您可以从中工作。您需要存储重新格式化值的每一行,然后将所有这些组合起来。
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)
推荐阅读
- flutter - 使用 sqflite 颤振收藏或收藏元素
- javascript - 如何修改对象中的键值?
- java - 遇到 JSONreader ClassNotFoundException 尽管将它包含在类路径中
- python - 为什么python内存分配会这样?
- reactjs - 反应问题。如何动态更改 setInterval 中的间隔值
- angular - Angular:从资产文本文件中加载值
- python - 用于过滤更新值的熊猫数据框的自定义函数
- javascript - 从数组中删除所有不以 X 结尾的项目
- mysql - mariadb 不允许我添加外键
- c# - 如何在 Winform 中格式化 LostFocus 事件的所有文本框值