【Python】MySQLのfatchallの実行結果
PythonでMySQLからデータを抽出した時の結果について
PythonからMySQLのデータベースに対してSELECTを行うと、以下のような結果が返ってきます。
(('cpe:2.3:a:07fly:07flycms:1.2.0:*:*:*:*:*:*:*', '07fly 07flycms 1.2.0 '), ('cpe:2.3:a:07fly:07flycms:1.3.8:*:*:*:*:*:*:*', '07fly 07flycms 1.3.8 '))
これは結果がタプル型で返ってくるからだそうです。
以下、ChatGPTの回答
Pythonでは、cursor.fetchall() を使うと、
・行ごとに1タプル
・列ごとに要素
という形で返されます。
とのこと。
私はlist型でデータを受け取りたかったため、以下の通り対処をしました。
# Select文を実行し、結果を受け取る
result, error_code, err_msg = self.executeSql(sql)
# 1行ずつ読み込んで、list型に変換していく。
result_list = [list(row) for row in result]
タプル型をそのまま流用すればいいんじゃない?と思いつつ、今日は脳の活動が弱まっているため調査を諦めました。
何かわかったら追記します。
コメント
コメントを投稿