毎日テキストマイニング

180日間、毎日テキストマイニングをするブログ

2018/7/1【9日目後半】何でもいいからMySQLにデータをINSERTする

午後からの続きです。

何でもいいからINSERTしてみる

無事PythonからMySQLにConnectできたので、今度はMySQLにINSERTしていきたいと思います。 ひとまずテストも兼ねて、保存するのは日時、名前、ツィート内容だけです。

crsr = db.cursor()
insert_query = "INSERT INTO akb_test5 (created_data, name, tweet) VALUES (%s, %s, %s)"
crsr.execute(insert_query, (created_data, name, tweet))
db.commit()
cursor.close()
db.close()

実行結果

mysql.connector.errors.DataError: 1292 (22007): Incorrect time value: 'Sun Jul 01 09:45:46 +0000 2018' for column 'created_data' at row 1

うすうす気づいていたのですが、やっぱりTwitterから戻ってくる「Sun Jul 01 09:45:46 +0000 2018」がデータ型に合わないらしいですね。これは何のデータ型なのかと調べてみたのですが、ちょうどいいのが見つからず。今は何でもいいので、データベースにINSERTするのが先なので、created_dataをコードから消してしまいます。再実行。

実行結果

mysql.connector.errors.DatabaseError: 1366 (HY000): Incorrect string value: '\xF0\x9F\x91\x97\xF0\x9F...' for column 'tweet' at row 1

このエラーは絵文字が対応していないとのことです。ツィートの内容に絵文字があったのでしょうか? これの解決法はデータベースに設定したutf8をutf8mb4に変更すれば良いとのことです。

昨日作ったばかりなので、utf8なのは知っているのですが、念のため確認。

show variables like "chara%";

実行結果

character_set_client     utf8

utf8ですね。しかし、今はutf8をutf8mb4に変更するよりも、データベースにデータを入れたいので、修正は後回しにします。 tweetも削除し、右往左往して最終的にできたコードがこちらです。

connect = {
    'user': ‘NAME’,
    'password': ‘PASSD’,
    'host': 'localhost',
    'database': 'akb_test'
}

db=mysql.connector.connect(**connect)
crsr = db.cursor()

sql = 'INSERT INTO akb_test(name) VALUES("名前")';
crsr.execute(sql)

db.commit()
crsr.close()

これでひとまず、akb_testのテーブルに「名前」という情報が入りました。 f:id:rimt:20180702004530p:plain

これをベースに明日こそはTwitterの情報を入れて行きたいです。

今日の結果

今日の呟き件数は少なめの33件でした。 7月になったので、「暑い」や「下半期」という呟きが目立ちます。それと、サンリオのキャラクター投票の発表があったようで、マイメロディに出てくるキャラクターのピアノちゃんに触れている呟きも目立ちます。 f:id:rimt:20180702003930p:plain

形容詞 '楽しい': 3, 'ない': 2, '懐かしい': 1, '嬉しい': 1, '良い': 1, 'やさしい': 1, 'あつい': 1

名刺 '月': 11, '今日': 8, '夏': 8, '年': 6, 'ちゃん': 5, '下半期': 5, '日': 4, '楽しい': 3, '位': 3, 'ピアノ': 3, '私': 3, '枚': 3, '目': 3, '出演': 3, '雷鳴': 3, 'チーム': 3,

動詞 'する': 15, '月': 11, '今日': 8, '夏': 8, '年': 6, 'ちゃん': 5, '下半期': 5, 'てる': 5, '日': 4, '観る': 4, '見る': 4, 'やる': 4, '楽しい': 3, '位': 3, 'ピアノ': 3, '私': 3, '枚': 3, '目': 3, '出演': 3, '雷鳴': 3, 'チーム': 3, 'いる': 3, 'くださる': 3,

今日勉強したこと