Как выбрать столбец по имени? (В Python & И Sqlite3)

В настоящее время у меня есть следующий код:

c.execute("SELECT * FROM table")
for row in c.fetchall():
    print row[0]
    print row[1]

однако я изменил структуру своей таблицы, и теперь мне нужно изменить значения Индекса, чтобы представить это изменение. Есть ли способ вместо этого использовать имена столбцов?

2 ответов


посмотреть Объекты Строки в документах для модуля sqlite3. Если вы используете sqlite3.Row row_factory вы получите объект, который немного мощнее, чем обычные кортежи. Я предполагаю, что у него немного выше накладные расходы, поэтому он не является поведением по умолчанию.


по этой причине рекомендуется всегда использовать явные имена столбцов при выполнении SELECT:

c.execute("SELECT color, fluffiness FROM table")
for row in c.fetchall():
    print row[0]         #  <-- is always guaranteed to be the color value
    print row[1]