YU2TA7KA's BLOG

派生開発、組み込み開発周りのこと。

PythonでMariaDB(MySQL)に接続し、レコード内容をツイートする方法

はじめに

pythonでMariaDB(MySQL)に接続し、レコード内容をツイートする方法を紹介します。データベースのテーブル及びレコードは予め作成登録済みのものとします。

環境

OS RASPBIAN STRETCH LITE(October 2018)
言語 Python 2.7.13
DB MariaDB 10.1.23-9+deb9u1

その他環境の詳細はこちら

ツイートまでの流れ

データベースへ接続

import mysql.connector
import json
# DB connection
conn = mysql.connector.connect(
    host = 'localhost',
    port = 3306,
    user = 'DBユーザ名',
    password = 'DBパスワード',
    database = '接続するDB名',
)
#Check connection
if not conn.is_connected():
    print 'DB connect error'
#Getting cursor in dictionary
cur = conn.cursor(dictionary=True)

レコードの取得

cur.execute('SELECT *  FROM `テーブル名`')
record = cur.fetchall()

` の入力*1

ツイート文の作成

message = record[0]['カラム名']
message += record[0]['カラム名'].encode('utf-8')

日本語の場合はエンコードが必要

ツイートの実行

try:
    # tweet
    print(message)
    twitter.update_status(status=message)
except twython.TwythonError as err_message:
    print err_message

Twythonを使ったツイート方法はこちら

参考Webサイト

ほぼこの記事のコピーです。*2

おわりに

辞書形式でDBを読み込めたら、どうとでも扱えますね。これでボットのツイート内容に幅を持たせればと思っております。
また、データベースのカラム設計の最適解がよくわかっておらず、とても無駄の多い使い方になっているような気がします。いつかちゃんと調べて再設計したい。


*1:`(バックオート)の入力はWindowsだと“Shift”キー + “@”キー

*2:ツイートまでの流れとしてまとめておきたかったので、ご容赦下さい。