заставить курсор mysqldb dict возвращать префикс всех имен столбцов с именем таблицы

SELECT * FROM a, b WHERE ...

Mysql допускает дублирование имен столбцов в результатах запроса. Итак, в терминале ни одно из имен столбцов не имеет префикса с использованием вышеуказанного запроса.

Однако я использую mysqldb в python с DictCursor. Результаты представляют собой список словарей, в которых имена столбцов являются ключами. Иногда курсор dict автоматически ставит перед именем столбца имя таблицы. Насколько я могу судить, он делает это для второго из двух неоднозначных имен столбцов, но только если второе значение уникально. В любом случае, я бы хотел, чтобы курсор ставил префикс ВСЕХ клавиш с именем таблицы.

Из документации mysqldb о функции fetch.row () ...

Второй параметр ( how) сообщает, как должна быть представлена ​​строка. По умолчанию он равен нулю, что означает возврат в виде кортежа. как = 1 означает, вернуть его как словарь, где ключи - это имена столбцов, или table.column, если есть два столбца с одинаковым именем (скажем, из присоединиться). how = 2 означает то же самое, что и how = 1, за исключением того, что ключи всегда table.column; это сделано для совместимости со старым модулем Mysqldb.

Итак, это кажется выполнимым, но я не использую функцию fetch.row () напрямую ... поэтому вопрос в том, как я могу вызвать mysqldb dict, чтобы всегда использовать how = 2 при извлечении строк?

5
задан jmilloy 25 July 2011 в 20:31
поделиться