Я пытаюсь использовать примеры, которые мне интересны / интересны для изучения MySQL и Python. Я новичок в обоих, так как я по профессии финансист. Я многому научился на этом пути, но сейчас я не уверен, куда идти.
Файлы данных, которые я хочу импортировать, содержатся в zip-файле, размещенном: здесь
Я распаковал каталог, там более 1000 файлов. В приведенном ниже коде я просто пытаюсь ссылаться на один из файлов по отдельности, чтобы разобрать его в MySQL.
Я полностью осознаю, что должен быть более простой способ сделать это, но я учусь, и я уверен, что мой код отражает это (вы можете видеть, что я напечатал некоторые основные печатные издания, чтобы увидеть, что мой код был правильно).
Буду признателен за любую помощь, которую вы сможете оказать. По сути, когда дело доходит до Python, я рассматриваю это как хобби и способ получить большой объем данных в Интернете, с которыми я хочу играть. Я вставил свой код ниже, чтобы вы могли видеть, откуда я.
P.S. Извините за код ниже, не могу найти лучший способ опубликовать его.
Код ниже - мой скрипт создания таблицы
> 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()