データベースを扱うときに、カラム名が分からない状態でプログラムを書くことはあまりないと思いますが、以下のように書くと列名と取得した値を関連づけたデータにできます。
参考: https://docs.python.jp/3/library/sqlite3.html#sqlite3.Cursor.description
Python
1>>> cursor = con.cursor()
2>>> cursor.execute('SELECT * FROM sample')
3<sqlite3.Cursor object at 0x000001F8F3C45730>
4>>> row = cursor.fetchone()
5>>> row
6('hoogee', 'huugaa')
7>>> cursor.description
8(('hoge', None, None, None, None, None, None), ('huga', None, None, None, None, None, None))
Python
1>>> cursor.execute("INSERT INTO sample VALUES ('hello','world')")
2<sqlite3.Cursor object at 0x000001F8F3C45490>
3>>> results = []
4>>> cursor.execute('SELECT * FROM sample')
5<sqlite3.Cursor object at 0x000001F8F3C45490>
6>>> for row in cursor.fetchall():
7... x = dict(zip([d[0] for d in cursor.description], row))
8... results.append(x)
9...
10>>> results
11[{'hoge': 'hoogee', 'huga': 'huugaa'}, {'hoge': 'hello', 'huga': 'world'}]
row_factoryを使うと以下のように簡潔に書けます。
参考: https://docs.python.jp/3/library/sqlite3.html#row-objects
Python
1>>> con.row_factory = sqlite3.Row
2>>> cursor = con.cursor()
3>>> cursor.execute('SELECT * FROM sample')
4<sqlite3.Cursor object at 0x000001F8F3C45650>
5>>> results = []
6>>> for row in cursor.fetchall():
7... results.append(dict(x))
8...
9>>> results
10[{'hoge': 'hello', 'huga': 'world'}, {'hoge': 'hello', 'huga': 'world'}]
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/27 02:24