python - 如何获取 csv 文件中的行并将它们用作表中列的值?
问题描述
编写一个名为“csv_to_db”的函数,该函数将字符串作为参数,表示 csv 文件的名称,并且不返回值。有一个数据库保存在名为“port.db”的文件中,其中包含一个名为“introduce”的表,其中包含“luck”、“reportedly”和“isolate”列。读取名称与输入字符串相同的 csv 文件,并将该文件的每一行作为记录添加到表中。csv 文件中的每一行将包含 3 个字符串作为其值,这些字符串应用作表中三列的值。
import sqlite3
import csv
def csv_to_db(string):
conn = sqlite3.connect('port.db')
with open(string, 'r') as f:
reader = csv.reader(f)
for row in reader:
c = conn.cursor()
insert = c.executemany('INSERT INTO introduce VALUES (?, ?, ?)', row)
conn.commit()
这是我对这个问题的尝试;出现错误:当前语句使用 3,并且提供了 10。我怎样才能解决这个问题?
解决方案
import sqlite3
import csv
def csv_to_db(str):
connection = sqlite3.connect('port.db')
with open(str, 'r') as f:
reader = csv.reader(f)
for row in reader:
c = connection.cursor()
c.execute('INSERT INTO introduce VALUES(?,?,?)', (row[0],row[1],row[2]))
connection.commit()
推荐阅读
- r - R:创建一个直方图,显示每个大陆的贸易余额分布
- python - 如何有效地将数组解码为熊猫数据框中的列
- python - 一个热门编码器是行业规范,在训练/拆分之前或之后进行编码
- java - API 服务中的数据不更新,仅在清除缓存后更新
- mongoose - 如何防止猫鼬创建集合?
- .htaccess - 将单页限制为用户代理?
- javascript - 如果文本框 2 中有相同的多个值,则 jQuery 验证文本框 1
- node.js - NodeJS 中巨大的 JSON 对象处理
- google-cloud-platform - Google Cloud Billing:如何配置发送预算通知的时间
- sql - SQL Server 中的数学问题