Python+MySQLでストアドプロシージャの実行(最後)〜SQLAlchemyでプロシージャを実行した結果はtupleのリストになってしまう

ここまで続いてきた失敗だらけの履歴。
pythonフレームワークはbottle、ORマッパーはSQLAlchemyを使用。

・「Python+MySQLでストアドプロシージャの実行
・「Python+MySQLでストアドプロシージャの実行(続き)〜複数結果の取得はcursor.nextset()で順次取得

今回で最後(だと思う)。

ここまででpythonからmysqlで作成したストアドプロシージャを呼び出して戻り値を得ることが出来たが、最後の画面表示部分でエラーとなっていた。

現段階での結論だと、次の処理が必要。面倒・・・。

タイトルにも書いたが、SQLAlchemyでプロシージャを実行した結果はtupleのリストになってしまうので、自分でdictionaryを作成して値をそれに詰め替え、最後にValuesViewに変換したものをリストに詰め込む必要がある。

細かなところは別として、流れは次のような感じ。

url = 'mysql+pymysql://' + 'ユーザ名' + ':' +    'パスワード'+ '@' + 'DBホスト名' + '/' + 'DB名?charset=utf8'
engine = dbMapper.create_engine(url, echo=False)
connection = engine.raw_connection()

try:
    # Query実行
    cursor = connection.cursor()
    cursor.callproc("ストアドプロシージャ名", [ストアドプロシージャの変数名])
    resultList = []
    while true:
        # cursor.fetchall()の実行結果はtuple
        result = list(cursor.fetchall())

        # tupleの実行結果だと表示できないので、OrderDictに詰め替える
        cursorResultDict = OrderedDict()
        cursorResultDict['実行結果のカラム名1'] = result[0][0]
        cursorResultDict['実行結果のカラム名2'] = result[0][1]
       

        # OrderDictのリストだとmappingされずに実行結果を表示できないので、values()関数でValuesViewのリストに変換する
        resultList.append(cursorResultDict.values())

        isNext = cursor.nextset()
        if isNext == None:
            break

finally:
    cursor.close()
    connection.close()
    return resultList