鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

PythonのDataFrameからMySQLへinsertする

こんな塩梅でinsertして割と楽かなと思ったけど
SQLAlchemyを使えとのワーニングが出ている。

In [42]: d = {'insert_date': ['2016-01-01'], 'close' : [1000]}

In [43]: frame=pandas.DataFrame(data=d)

In [44]: pycon = pymysql.connect(host="localhost", user="dokechin",password="dummy",database="jognavi")

In [45]: pandas.io.sql.to_sql(name='NI225',con=pycon,frame=frame,flavor='mysql',
if_exists='append',index=False)

ipython-script.py:1: FutureWarning: The 'mysql'
flavor with DBAPI connection is deprecated and will be removed in future version
s. MySQL will be further supported with SQLAlchemy connectables.
  if __name__ == '__main__':

pandasとSQL - keisukeのブログ

むむぅ。また新キャラ登場か。でもAnaconda入れたら?SQLAlchemyとやらはインストールされているみたいでこれがやっぱり標準的な使い方なのかもしれないので、こちらを使うように変えてみよう。そうしよう。

しかし・・・

In [5]: engine = sqlalchemy.create_engine("mysql://dokechin:dummy@localhost/jognavi")

ImportError: No module named 'MySQLdb'

MySQLdbはWindows7(64bit),Python3.5.1では鬼門でインストールできないので・・
結局ワーニングのまま使おう。

SQLAlchemy+pymysqlの組み合わせも使える

PyramidでSQLAlchemyでMySQLに接続する | Python Knowledge

こんな感じかな

In [5]: engine = sqlalchemy.create_engine("mysql+pymysql://dokechin:dummy@localhost/jognavi?charset=utf8&use_unicode=1")