図書館で『実践 Pythonによるデータベース入門』を借りてきて試してみたのだが「mysql.connector」を使った例がなぜかうまく動かない。仕方がないので「mysqlclient」を使ったコードに書き換えるとうまく動いた。
やろうとしたのは、csvファイルをPyhonで読み込んでそのデータをMySQLのテーブルに挿入しPythonで表示。上が元のcsvファイル。したがPythonで読み込んだMySQLのデータ。
《コード》
# MySQLサーバーへ接続
# CSVファイルからMySQLへ
import MySQLdb
import csv
connection = MySQLdb.connect(
host='localhost',
user='root',
passwd='MySQLのパスワード',
db='sampledb')
cursor = connection.cursor()
# ここに実行したいコードを入力
cursor.execute("DROP TABLE IF EXISTS memberlist2;")
cursor.execute("CREATE TABLE memberlist2 ( mid INT, name CHAR(20), gender CHAR(10), age int, PRIMARY KEY (mid) );")
operation =("INSERT INTO memberlist2 VALUES (%s, %s, %s, %s);")
segs=[]
with open('newlistdata.csv',encoding='utf-8') as f:
reader = csv.reader(f)
for row in reader:
tuple=(int(row[0]), row[1], row[2], int(row[3]))
segs.append(tuple)
cursor.executemany(operation, segs)
#コミットする
connection.commit()
cursor.execute("select * from memberlist2")
tuples = cursor.fetchall()
print("テーブルmemberlist2のデータ:")
for tpl in tuples:
print(tpl)
connection.close()