Проблема
Я использую Py MYSQL для запроса базы данных, используя следующую функцию SQL translater.
def retrieve_column(lotkey, column="active",print = False):
result = None
try:
connection = sql_connect()
with connection.cursor() as cursor:
# Create a new record
sql = "SELECT %s FROM table_n"
val = (column)
os_print(sql + '\r\n...', end='', style='dim', flush=True)
cursor.execute(sql, val)
result = cursor.fetchall()
connection.close()
except Exception as e:
os_print(e, style='error')
os_print("ERROR: Can't connect to database!", style='error', tts='error')
return result
Который я вызываю и печатаю, используя следующие строки. Примечание: Столбец 'active' имеет логическое значение.
active_col = retrieve_column(key)
print(active_col)
Что выводит следующий причудливый результат. Кажется, это словарь, в котором нет значений.
...[{'active': 'active'}, {'active': 'active'}, {'active': 'active'}, {'active': 'active'}, {'active': 'active'}, {'active': 'active'}, {'active': 'active'}]
Попытки решения
Моим первым шагом было выполнение того же запроса в MySQL верстаке, который выдал следующий результат.
Workbench Query Это примерно то, что я пытаюсь воспроизвести в Python (Получение словаря с логическим значением каждой строки).
Далее я использовал отладчик python и обнаружил, что действительно возвращаемые значения из cursor.fetchall()
являются пустыми словарями, в которых нет ничего, кроме одного ключа и никаких значений.
Кто-нибудь сталкивался с чем-то подобным раньше?