在使用python處理大數(shù)據(jù),難免要使用pandas和數(shù)據(jù)庫。在將pandas直接存儲(chǔ)進(jìn)mysql中時(shí)抵拘,需要用到一個(gè)庫sqlalchemy泥畅。用它里面的方法create_engine和數(shù)據(jù)庫連接,然后直接使用df.to_sql()函數(shù)即可仰剿。
問題:在調(diào)用create_engine連接數(shù)據(jù)庫時(shí),報(bào)錯(cuò) "Could not parse rfc1738 URL from string '%s'" % name
create_engine('mysql + pymysql://{}:{}@{}:{}/{}'.format(self.user,self.passwd,self.hostname,self.port,self.db))
百度有人說解決辦法將單引號改成雙引號,然并暖辣垒。這個(gè)和單雙引號根本沒關(guān)系滴。后面繼續(xù)在stackflow找到了解決答案:
在create_engine入?yún)⒌淖址星f不要加空格印蔬。重要的話說三遍勋桶,不要加空格,不要加空格侥猬,不要加空格例驹。
正確的:
create_engine('mysql+pymysql://{}:{}@{}:{}/{}'.format(self.user,self.passwd,self.hostname,self.port,self.db))