かなり記録をさぼりました。
というのも前に全く進まないから。
なので、50日以上経ってます。
だって、プログラムって間違えずに書かないと動かないから
報告すらできないのですよ。
こんな感じでPythonで書きました。
これは何かというと。
MariaDBというデータベースに自動入力するというコードです。
これで完成ですが、大変でした。
そもそも入力ができなかったです。
最初に書いたコードがこちらです。
# Module Imports
import mysql.connector as mydb
import json
import sys
import requestsconn = mydb.connect(
host='localhost',
port='3306',
user='root',
password='',
database='kayumi'
)
conn.ping(reconnect=True)
# APIをゲットする
url = 'APIのアクセス先'
response = requests.get(url)
jsonData = response.json()
print(jsonData)# mysqlに挿入←ここから失敗してるようです
mycursor = conn.cursor()
sql = "INSERT INTO kayumi (content) VALUES (%s)"mycursor.execute(sql, (jsonData,))
conn.commit()print(mycursor.rowcount, "record inserted.")print(sql)
# cursor.close()
# 接続できているかどうか確認
print(conn.is_connected())
これを、コマンドプロンプトを使ってプログラムを実行したところ。
こんな結果が出ました。
During handling of
the above exception, another exception occurred:Traceback (most recent call
last):
File
"C:\Users\junio\Documents\kayumi\app.py", line 25, in <module>
mycursor.execute(sql,
(jsonData,))
File
"C:\Users\junio\AppData\Roaming\Python\Python39\site-packages\mysql\connector\cursor.py", line 557, in execute
psub =
_ParamSubstitutor(self._process_params(params))
File
"C:\Users\junio\AppData\Roaming\Python\Python39\site-packages\mysql\connector\cursor.py", line 436, in _process_params
raise
errors.ProgrammingError(
mysql.connector.errors.ProgrammingError:
Failed processing format-parameters; Python 'list' cannot be converted to a MySQL type
意味が分からないですね。
これを、プログラムを学んでいる仲間に投げました。
mysql.connector.errors.ProgrammingError: Failed processing format-parameters; Python 'list' cannot be converted to a MySQL type
この部分が、list型になっているのでMySQLに合わないですよ。
という意味だと教えてもらいました。
MySQLでjsonを保存するというサイトを見つけました。
なので、json型になるようにと
json.dumpsというのがいるらしい。
なので、挿入してみると。
僕のデータはこんな感じです。
[{'place': '名古屋', 'humidity': '69.5', 'max_temp': '6', 'min_temp': '-1', 'temp_index': '-', 'sweat_index': '-', 'pollen_index': '-', 'kosa_pm_index': 'やや注意'}, {'place': '東京', 'humidity': '45.083333333333336', 'max_temp': '6.5', 'min_temp': '-1.3', 'temp_index': '-', 'sweat_index': '-', 'pollen_index': '-', 'kosa_pm_index': 'やや注意'}, {'place': '大阪', 'humidity': '55.333333333333336', 'max_temp': '6.8', 'min_temp': '-0.3', 'temp_index': '-', 'sweat_index': '-', 'pollen_index': '-', 'kosa_pm_index': 'やや注意'}, {'place': '福岡', 'humidity': '68.20833333333333', 'max_temp': '7.6', 'min_temp': '1.7', 'temp_index': '-', 'sweat_index': '-', 'pollen_index': '-', 'kosa_pm_index': '注意'}]
INSERT INTO kayumi (content) VALUES (%s);
ですが、データベースに入力すると
[{"place": "\u540d\u53e4\u5c4b", "humidity": "58.625", "max_temp": "5.8", "min_temp": "-1.8", "temp_index": "-", "sweat_index": "-", "pollen_index": "-", "kosa_pm_index": "-"}, {"place": "\u6771\u4eac", "humidity": "41.75", "max_temp": "8.1", "min_temp": "-2.4", "temp_index": "\u6ce8\u610f", "sweat_index": "-", "pollen_index": "-", "kosa_pm_index": "-"}, {"place": "\u5927\u962a", "humidity": "49.833333333333336", "max_temp": "6.1", "min_temp": "-1.4", "temp_index": "-", "sweat_index": "-", "pollen_index": "-", "kosa_pm_index": "-"}, {"place": "\u798f\u5ca1", "humidity": "60.666666666666664", "max_temp": "5.7", "min_temp": "0.9", "temp_index": "-", "sweat_index": "-", "pollen_index": "-", "kosa_pm_index": "\u6ce8\u610f"}
なんじゃこれ???
怖いんですよ、わけわからんのがコンピューターに出ると。
文字化けなんですけどね
ちなみに文字化けというのは、言葉が表示されずに意味不明の言葉が並ぶことです。
あ~~、こわ。
恐ろしい。
どうやら日本語はコンピューターと会話するのに向いてないな。
ふて寝ですよ、ふて寝。
嫌になる、とにかく失敗失敗。
というぼやきを、LINEのタイムラインに打ち込むと。
「それ、入力側で指定したら直ると思います。」ってパソコンに詳しい友人から。
あ~~~~~~~~。
ということで調べると。
あった。
おぉぉぉぉぉぉ。
そして、最初のコードになります。
さてさてさてさて。
プログラム実行
3 | [
{
"place": "名古屋",
"humidity": "69.5",
"max_temp": "6",
"min_temp": "-1",
"temp_index": "-",
"sweat_index": "-",
"pollen_index": "-",
"kosa_pm_index": "やや注意"
},
{
"place": "東京",
"humidity": "45.083333333333336",
"max_temp": "6.5",
"min_temp": "-1.3",
"temp_index": "-",
"sweat_index": "-",
"pollen_index": "-",
"kosa_pm_index": "やや注意"
},
{
"place": "大阪",
"humidity": "55.333333333333336",
"max_temp": "6.8",
"min_temp": "-0.3",
"temp_index": "-",
"sweat_index": "-",
"pollen_index": "-",
"kosa_pm_index": "やや注意"
},
{
"place": "福岡",
"humidity": "68.20833333333333",
"max_temp": "7.6",
"min_temp": "1.7",
"temp_index": "-",
"sweat_index": "-",
"pollen_index": "-",
"kosa_pm_index": "注意"
}
] | 2021-01-12 08:55:21 |
できた~~~~~~。
3個目のデータは、これです。
そして最後に、プログラムを実行した日時まで入ってますね。
最初は、Node.jsというプログラム言語でやっていて。
厳しくなり。
得意なPythonでやってみたけど、それでもうまくいかなくて。
いろいろな人から教えてもらい。
データを記録することができました。
これを蓄積していけば、かゆみの予測アプリを開発できます。
さて、次に取り掛かります。
次は、気象庁の過去の天気を元にかゆみ予測を行います。