gpt4 book ai didi

Python/MySQL - 将csv数据导入mysql表

转载 作者:行者123 更新时间:2023-11-29 06:25:13 27 4
gpt4 key购买 nike

我正在开发一个 python 应用程序,通过 .csv 文件将数据插入到我的数据库中。但是导入文件时出现以下错误:

Warning: (1262, 'Row 1 was truncated; it contained more data than there were input columns')
result = self._query(query)

基本上适用于 csv 文件中的所有行。文件内数据如下:

enter image description here

我可以以同样的方式直接将其导入到工作台中,但我想通过应用程序来执行此操作。

请按照以下代码操作:

from tkinter import *
import pymysql
import os
import os.path

tess = Tk()

def import_file():

conn = pymysql.connect(host='localhost', port=3306, user='root', password='', db='omnia')
print('connect successfull!')



if os.path.exists('C:/temp/teste.csv'):
statm = "LOAD DATA INFILE 'C:/temp/teste.csv' INTO TABLE testtable FIELDS TERMINATED BY ','"
cursor = conn.cursor()
cursor.execute(statm)

bt = Button(tess, text='browse file')
bt.place(x=10, y=10)

bt = Button(tess, text='import file', command=import_file)
bt.place(x=10, y=45)

tess.mainloop()

还有表格:

create table testTable(
n_id int not null auto_increment,
c_nome varchar(255),
c_depto varchar(255),
n_salario float,
primary key (n_id));

最佳答案

您的表定义以自动增量列开始,但所有这些列的输入数据均显示为零。因此,不要导入它们。

您的输入数据行以逗号分隔符结尾。在 CSV 世界中,这意味着每行以空列结尾。跳过它。

此 SQL 未经调试,应该可以工作。

 LOAD DATA INFILE 'C:/temp/teste.csv' 
INTO TABLE testtable
(@dummy_id,c_nome,c_depto,n_salario,@dummy)
FIELDS TERMINATED BY ',';

列列表中的 @dummy 列告诉导入将这些值放入虚拟值中,而不是表中:换句话说就是跳过它们。

关于Python/MySQL - 将csv数据导入mysql表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59823785/

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