首页 > 解决方案 > 如何获取 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。我怎样才能解决这个问题?

标签: pythondatabasesqlitecsv

解决方案


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

推荐阅读