« Macの新しいパッケージ管理ツールhomebrewをインストール | トップページ | Pythonでの文字出力 »

2011/08/03

PythonでMySQLに接続し、辞書で値を受け取る

現在作っているサービス。裏側のcronスクリプトは
rubyかpythonかどっちかで作ろうか悩んでました。

rubyの方が人気がある気がしたので先に試したのですが、
最新版のgemがそもそもうまくインストールできない。

仕方がないので、ruby自体をソースコードからインストール。
今度は最新版のgemをインストールできたのですが、
gem install mysql
が全くうまく行かない。

こりゃ、perlのCPAN入れるのと同じくらい、しんどそうと判断。

逆にpythonのMySQL接続ライブラリはCentOS5に標準インストールされていた。
うーん、pythonでやってみるか。とちょっと調べて書いてみました。

import MySQLdb
from MySQLdb.cursors import DictCursor

connect = MySQLdb.connect(db="test", host="localhost", port=3306, user="root", charset="utf8")
cur = connect.cursor(DictCursor)
cur.execute("SELECT id, name FROM users")
rows = cur.fetchall()

for row in rows:
print row
cur.close()
connect.close()

こりゃ簡単にかける。

from MySQLdb.cursors import DictCursor

この、辞書(連想配列みたいなものですな)でカーソルを使うためのモジュールをインポートしておいて

cur = connect.cursor(DictCursor)

カーソルは辞書で受け取りますよ。って宣言してあげれば。

{'id': 21L, 'name': u'\u30bb\u30d4\u30a2'}

こういう形で入ってきます。

print row['name']

できちんと、UTF8の文字列が表示されました。

この方向でいってみよう!

« Macの新しいパッケージ管理ツールhomebrewをインストール | トップページ | Pythonでの文字出力 »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/12417/52382037

この記事へのトラックバック一覧です: PythonでMySQLに接続し、辞書で値を受け取る:

« Macの新しいパッケージ管理ツールhomebrewをインストール | トップページ | Pythonでの文字出力 »