gpt4 book ai didi

python导入csv到sqlite

转载 作者:太空宇宙 更新时间:2023-11-04 08:54:44 28 4
gpt4 key购买 nike

您好,我正在尝试使用 python tkinter 将 csv 文件导入到 sqlite3 数据库。 我使用 askopenfilename 对话框打开文件并将文件传递给 readFile 函数。

def csvFile(self):
f1 = askopenfilename()
self.readFile(f1)

def readFile(self, filename):
conn = sqlite3.connect('Unicommerce.db')
cur = conn.cursor()
cur.execute("""CREATE TABLE IF NOT EXISTS unicom(products varchar,channel varchar,regulatory_forms varchar,shipment varchar)""")
filename.encode('utf-8')
print "test1"
reader = csv.reader(filename)
for field in reader:
cur.execute("INSERT INTO unicom VALUES (?,?,?,?);", field)

conn.commit()
conn.close()

我遇到了这个错误。

cur.execute("INSERT INTO unicom VALUES (?,?,?,?);", field)
ProgrammingError: Incorrect number of bindings supplied. The current statement uses 4, and there are 1 supplied.

我尝试了所有可能的解决方案,但无法将文件导入数据库。
我还尝试了这些链接中给出的解决方案
Importing a CSV file into a sqlite3 database table using Python
Python CSV to SQLite

编辑:链接到输入文件 Input File

最佳答案

在将文件传递给 csv.reader 之前,您需要先打开该文件。这是一个基本的可运行示例。我添加了一个类以允许您按原样使用现有方法。

import sqlite3
import csv

class csvrd(object):
def csvFile(self):

self.readFile('Labels.csv')

def readFile(self, filename):
conn = sqlite3.connect('Unicommerce.db')
cur = conn.cursor()
cur.execute("""CREATE TABLE IF NOT EXISTS unicom(products varchar,channel varchar,regulatory_forms varchar,shipment varchar)""")
filename.encode('utf-8')
print "test1"
with open(filename) as f:
reader = csv.reader(f)
for field in reader:
cur.execute("INSERT INTO unicom VALUES (?,?,?,?);", field)

conn.commit()
conn.close()

c = csvrd().csvFile()

关于python导入csv到sqlite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31243618/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com