先程のコードに下記を加えます。
import pymysql.cursors conn = pymysql.connect(host='localhost', db='DB_NAME', user='DB_USER', password='DB_PASS') sql='SELECT id,name FROM Persons' cursor = conn.cursor() cursor.execute(sql) results = cursor.fetchall() cursor.close() for line in results: print(line) conn.close();ちょっと冗長な書き方をしてます。何かよくわからないですがcursorというオブジェクトを用意してそれでSQLの操作をするようです。ちなみにこのcursorクラスはwith構文に対応しているので、下記のような書き方も可能で、こちらの方が一般的です。
sql='SELECT id,name FROM Persons' with conn.cursor() as cursor: cursor.execute(sql) results = cursor.fetchall() for line in results: print(line)実行結果
$ ./mysql_test.py (2, '赤城啓太')↑
下記のようにすると結果がヘッダを含めた辞書型で帰ってきます。
with self.conn.cursor(pymysql.cursors.DictCursor) as cursor: cursor.execute(sql) result = cursor.fetchall()