gpt4 book ai didi

python - 使用 Python 将多个 CSV 文件导入 MySQL

转载 作者:行者123 更新时间:2023-11-29 04:14:17 25 4
gpt4 key购买 nike

我正在尝试使用对我来说有趣/有趣的示例来学习 MySQL 和 Python。我对两者都是新手,因为我是一名贸易金融人员。一路上我学到了很多东西,但我不知道该去哪里。

我要导入的数据文件包含在一个 zip 文件中,托管于:here

我解压了目录,里面有超过1000个文件。在下面的代码中,我只是试图单独引用其中一个文件以将其解析到 MySQL 中。

我完全意识到必须有一种更简单的方法来解决这个问题,但我正在学习,而且我确信我的代码反射(reflect)了它(你可以看到我输入了一些基本的打印以查看我的代码是正确)。

如果您能提供任何帮助,我们将不胜感激。本质上,当谈到 Python 时,我将其视为一种爱好和一种获取 Web 上我想要玩的大量数据的方法。我在下面粘贴了我的代码,这样您就可以看到我来自哪里。

  • 布洛克

附言抱歉下面的代码,找不到更好的发布方式。

下面的代码是我的建表脚本

> DROP TABLE IF EXISTS `nba`.`event`;
CREATE TABLE `nba`.`event` (
`a1` varchar(45) DEFAULT NULL,
`a2` varchar(45) DEFAULT NULL,
`a3` varchar(45) DEFAULT NULL,
`a4` varchar(45) DEFAULT NULL,
`a5` varchar(45) DEFAULT NULL,
`h1` varchar(45) DEFAULT NULL,
`h2` varchar(45) DEFAULT NULL,
`h3` varchar(45) DEFAULT NULL,
`h4` varchar(45) DEFAULT NULL,
`h5` varchar(45) DEFAULT NULL,
`period` int(11) DEFAULT NULL,
`time` time DEFAULT NULL,
`team` varchar(3) DEFAULT NULL,
`etype` varchar(15) DEFAULT NULL,
`assist` varchar(45) DEFAULT NULL,
`away` varchar(45) DEFAULT NULL,
`block` varchar(45) DEFAULT NULL,
`entered` varchar(45) DEFAULT NULL,
`home` varchar(45) DEFAULT NULL,
`left` varchar(45) DEFAULT NULL,
`num` int(11) DEFAULT NULL,
`opponent` varchar(45) DEFAULT NULL,
`outof` varchar(45) DEFAULT NULL,
`player` varchar(45) DEFAULT NULL,
`points` int(11) DEFAULT NULL,
`possession` varchar(45) DEFAULT NULL,
`reason` varchar(50) DEFAULT NULL,
`result` varchar(10) DEFAULT NULL,
`steal` varchar(45) DEFAULT NULL,
`type` varchar(30) DEFAULT NULL,
`x` varchar(2) DEFAULT NULL,
`y` varchar(2) DEFAULT NULL,
`gameid` varchar(15) NOT NULL,
`seqnum` int(11) NOT NULL AUTO_INCREMENT,
`updated` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`seqnum`,`gameid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Datafiles of play by play from basketballgeek.com';

这是我的 python 脚本。我将上面的表格放在一个名为 NBA 的模式中。我设置了我的表,以便我相信为输入到数据库中的每条记录创建一个序列号。我将 gameid 作为字符串传递给它,并假设将为每个插入语句创建时间戳。我知道有错误,但我不知道错误是什么。

sql = """LOAD DATA INFILE '%s' INTO TABLE event FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\n';"""  % path

print sql

try:
cursor.execute(sql)
db.commit()
except:
print "ERROR"
db.rollback()

db.close()

最佳答案

为什么不使用 MySQL 自己的 CSV 导入功能?

http://dev.mysql.com/doc/refman/5.0/en/load-data.html

LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n';

关于python - 使用 Python 将多个 CSV 文件导入 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1800602/

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