さ、段々とスキルが上がって来ましたが、今回は既にPythonでスクレイピングしてダウンロードしたExcelファイルを、SynologyのMariaDB10(MySQL)へデータ追加したいと思います。
データはJ1リーグのチーム別集計結果です。
これをデータベースへ入力します。
実行方法はsynologyのタスクスケジューラーで即時実行する方法で行います。
export PATH="$PATH:/volume1/@appstore/py3k/usr/local/bin"
cd ./Document/TOTO/TOTO_2021/01_Python
python3 XXX.py
こんな感じでタスクスケジューラーに入力して、コードは下にある通りです。
# coding: utf-8
import xlrd
import sys
import pymysql.cursors
# ワークブックを開き、ワークシートを定義します。
book = xlrd.open_workbook("Excel-File.xlsx")
sheet = book.sheet_by_name("Sheet1")
# Mysqlへ接続
database = pymysql.connect(user='ユーザー名',passwd='パスワード',host='ホスト名',port = 3307,db='DB名',charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)
# データベースを1行ずつ走査するために使用されるカーソルを取得します。
cursor = database.cursor()
# INSERT INTO SQLクエリを作成する
query = "INSERT INTO J1_team_results (team, game, Match_time, score, Average_score, PK_score, PK, Conceded, Average_goal, PK_goal, un_PK, shoot, un_shoot, FK, CK, Foul, warning, game_Exit) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
# XLSXファイルの各行を反復するForループを作成し、2行目からヘッダーをスキップします
for r in range(1, sheet.nrows-1):
team = sheet.cell(r,1).value
game = sheet.cell(r,2).value
Match_time = sheet.cell(r,3).value
score = sheet.cell(r,4).value
Average_score = sheet.cell(r,5).value
PK_score = sheet.cell(r,6).value
PK = sheet.cell(r,7).value
Conceded = sheet.cell(r,8).value
Average_goal = sheet.cell(r,9).value
PK_goal = sheet.cell(r,10).value
un_PK = sheet.cell(r,11).value
shoot = sheet.cell(r,12).value
un_shoot = sheet.cell(r,13).value
FK = sheet.cell(r,14).value
CK = sheet.cell(r,15).value
Foul = sheet.cell(r,16).value
warning = sheet.cell(r,17).value
game_Exit = sheet.cell(r,18).value
# 各行から値を割り当てる
values = (team, game, Match_time, score, Average_score, PK_score, PK, Conceded, Average_goal, PK_goal, un_PK, shoot, un_shoot, FK, CK, Foul, warning, game_Exit)
# SQLクエリを実行する
cursor.execute(query, values)
# カーソルを閉じる
cursor.close()
# トランザクションをコミットします
database.commit()
# データベース接続を閉じます
database.close()
で、データベースにデータが入った所は以下になります。
phpMyAdminで確認して見ましょう。
出来ましたね。ん~。自分でも思ったよりも、出来るようになって来ました。
データベースにデータを自動的に入れることが出来るようになってきたので、ほぼ山場は過ぎて、あとはクエリを動かすくらいですね。
淡々と作って行きましょう。
しかし、参考にさせて頂いた皆さんには感謝しかないですね。有難いことです。