2012-02-10 13 views
7
dict_cur = conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor) 
dict_cur.execute("SELECT column1, column2, column3 FROM mytable") 
result = dict_cur.fetchall() 
print result[0] 
>>> {'column2':10, 'column1':12, 'column3':42} 

実行されたSQLを解析せずに列の順序を保持する方法はありますか?リストが返されたときに正常なカーソルでうまく動作しますが、辞書キーにアクセスする必要があり、RealDictCursorを使用する必要があります。psycopg2.extras.RealDictCursorを使用して列の順序を維持する方法

EDIT:まあ、実際にはできません。 descriptionカーソルオブジェクトの属性を列名の取得に使用する必要があります。

答えて

1

私は、この「extras」のパッケージを持っていないが、通常、カーソル等のフィールドタイプのようないくつかの追加情報と一緒に順番に

てみてくださいすべての列を含むタプルですdescriptionと呼ばれる性質を持っている必要がありますPythonシェルで "print dict_cur.description"を取り出し、あなたが何を得るかを見てください。

EDIT:決して気にしないでください。私はあなたの "編集"を読んでいませんでした...

関連する問題