【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]

タプル型をそのまま流用すればいいんじゃない?と思いつつ、今日は脳の活動が弱まっているため調査を諦めました。
何かわかったら追記します。

コメント

このブログの人気の投稿

【python】PySide6 におけるウィンドウとかダイアログボックス内のアイテムの自動調整

脆弱性評価システムを作る〜CVSSとは〜

dict型オブジェクトを内包するlistオブジェクトのコピー