我正在嘗試使用有趣/有趣的示例來學習MySQL和Python。我對這兩個人都是新手,因爲我是一個貿易融資人。我已經學到了很多東西,但我正處在一個不確定要去哪裏的地步。使用Python將多個CSV文件導入MySQL
的數據文件,我期待導入包含在一個zip文件,主辦:here
我解壓的目錄,是有超過1000個文件。在下面的代碼中,我只是單獨引用其中一個文件來解析它到MySQL中。
我完全意識到必須有更簡單的方法來解決這個問題,但我正在學習,並且我確信我的代碼反映了它(您可以看到我鍵入了一些基本打印以查看我的代碼是正確的)。
您可以提供的任何幫助將非常感謝。從本質上講,當涉及到Python時,我把它看作是一種愛好,也是一種獲取我想要玩的網絡上大量數據的方式。我在下面粘貼了我的代碼,以便您可以看到我來自哪裏。
- 布洛克
附:對於下面的代碼抱歉,找不到更好的發佈方式。下面
的代碼是我創建表腳本
> 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的模式中。我設置了我的表,因此,我相信,爲輸入到db的每個記錄都會創建一個序列號。我將它作爲一個字符串傳遞給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()
有一個技巧來格式化您的代碼。技巧寫在頁面的右側。請閱讀。請。 –