Python MySql Выберите единую колонку, возвращающую странные ценности
Я столкнулся с этой проблемой, создав сценарий практики, чтобы научить себя некоторому Python и библиотеке mysql.connector. Когда я выполняю запрос с одним столбцом и печатаю значения, я получаю такие результаты, как:
('tech-pc-1',) #Python 3.4.3 (u'tech-pc-1',) #Python 2.7.6
Однако, когда я выполняю запрос с несколькими столбцами, и я печатаю значения, я получаю результаты, которые я хочу.
tech-pc-1 jdoe
Я делаю это на сервере под управлением Ubuntu 14.04.
from mysql.connector import (connection) import datetime<br> conn = connection.MySQLConnection(user='user',password='pass',host='host',database='db') single_col_query = "select comp from logons where dt between %s and %s" multi_col_query = "select comp,user from logons where dt between %s and %s" end_dt = datetime.datetime.now() begin_dt = datetime.datetime(end_dt.year, end_dt.month, 1, 0, 0, 0) cursor = conn.cursor() cursor.execute(single_col_query, (begin_dt, end_dt)) for(comp) in cursor: print(comp) # ex. ('tech-pc-1',) or (u'tech-pc-1',) cursor.execute(multi_col_query, (begin_dt, end_dt)) for(comp,user) in cursor: print(comp, user) # ex. tech-pc-1 jdoe cursor.close() conn.close()
У меня есть пара вопросов:
- Почему это происходит?
- Как это исправить?
- Временное напоминание электронной почты в python
- Любой простой способ изменить данные, поступающие из базы данных mysql?
- Настройка Pyramid для использования MySQL raw вместо SQLAlchemy
- Преобразование строки в Python для вставки в дату столбца базы данных MySQL
- pandas to_sql урезает мои данные
Вы всегда получаете кортеж, даже если возвращается только один столбец. Во втором примере вы распаковываете кортеж, но в первом случае вы этого не делаете, поэтому вы видите репер () кортежа.
Либо распакуйте его в цикле:
for comp, in cursor:
или просто ссылайтесь на элемент непосредственно при печати:
print(comp[0])
Обратите внимание, что нет необходимости в круглых скобках в инструкции for даже при распаковке.
- Как сделать информацию отладчика httplib на уровне отладки журнала
- Получить абсолютный путь к общей библиотеке в Python
- Почему некоторые соединения mysql выбирают старые данные в базе данных mysql после удаления + вставки?
- Ввод файла в gnuplot через python
- Печать результатов в формате MySQL с помощью Python
- Модель Django charfield с запросом db
- SQLObject throws: Неизвестная база данных 'dbname? Charset = utf8'
- MySQL консультируется в QProgressBar
- TypeError: не может сравнивать даты смещения и наименьшего времени
- Python MySQL – запросы неожиданно кэшируются
- Подготовленные утверждения Python. Проблемы с SELECT IN