を返すためのMySQLコネクタ/パイソンを取得できませんタプルのリストとして標準出力を返します。私は、コネクタのバージョン2.1.7を使用していますので、ドキュメントは、カーソル宣言にはそうのように、私は、私は私の見解からMySQLのストアドプロシージャを呼び出すてるしたPythonアプリケーションを、持っている辞書
dictionary=True
を追加すると、行セットは、各辞書のキーとしてカラム名で、辞書のリストとして返されることがなければならないと言います。私のアプリケーションとドキュメントの例の主な違いは、cursor.callproc()を使用しているのに対して、実際のsqlコードではcursor.execute()を使用している点です。
私はそのように列名を得ることができるかどうかを確認するために
print(cursor.column_names)
を試してみましたが、私が得るすべてはより多くのストアドプロシージャへの入力パラメータのように見える
('@_audit_report_arg1', '@_audit_report_arg2', '@_audit_report_arg3', '@_audit_report_arg4', '@_audit_report_arg5', '@_audit_report_arg6', '@_audit_report_arg7')
です。
実際に返されるデータの列名を取得する方法はありますか?このプロシージャは多少複雑でクロス集計型の操作を含みますが、MySQL Workbenchから同じストアドプロシージャを呼び出すと列名がうまく供給されます。
通常、出力が想定されていることを知っているので、最後の数行のデータをクロス集計する以外は列名をハードコードすることができ、クエリの実行後に何が行われるか予測できません。 ありがとう...
https://stackoverflow.com/a/5058950/7383995これはあなたを助けるかもしれません! –
Thanks @ legend-is-backですが、助けにはなりませんでした。その記事はPython 3をサポートしていないMySqlDbの記事です。私はmysql connector/Pythonを使用しています。私がcursor.descriptionを印刷すると、次のように表示されます:[( '@ _check_register_report_arg1'、250、None、None、None、1、0)、( '@ _check_register_report_arg2'、250、None、None、None、None、 0)など。カラム名はなく、パラメータに関する情報のみ。 – RMittelman
Python 3を使用している場合は、pymysqlを使用することをお勧めします。私はPython 3にはoymsyqlを使用し、2,7にはmysqldbを使用し、両方で動作する解決策を提供します –