したがって、列名をSQLクエリに入れようとしています
import sqlite3
db = sqlite3.connect('path/to/my/database.sqlite')
cur = db.cursor()
def get_val(field):
return cur.execute('''
SELECT x, y, :field FROM literal_table
WHERE
:valid_field_name > 0 AND
(some other conditions)
GROUP BY x, y''',
{'field': field}).fetchall()
get_val('valid_field_name')
しかし、コードを実行すると、列から値を取得する代わりに、python が返されます
[(x1, y1, u'valid_field_name'), (x2, y3, u'valid_field_name'), ...]
テーブル名をエンコードできないことは知っていますが、パラメータ化された列名のドキュメントに例があります。文字列の書式設定を使用してソリューションをハックしました (コードはプライベート データ処理用であるため、SQL インジェクションは問題になりません) が、何が起こっているのかを理解する必要があります!
私はPython 2.7.3を使用しています