Запрос списка кортежей в базе данных

Поскольку я новичок в программировании на python, я не знаю больше о запросе данных из базы данных. Во-первых, я создал свою базу данных в SQL Server с двумя столбцами: столбцом String столбцом Numeric .

+--------+---------+ | String | Numeric | +--------+---------+ | One | 1 | | Five | 5 | | Three | 3 | | Seven | 7 | | Eight | 8 | | Two | 2 | +--------+---------+

Например:

X = [('three','odd'), ('one','odd'), ('two','even')]

Теперь я хочу, чтобы результат последовал за этой последовательностью: odd – even – odd так что это будет так: 1 2 3 . +-----+------+-----+ | Odd | Even | Odd | +-----+------+-----+ | 1 | 2 | 3 | +-----+------+-----+

Как запросить numeric значение string на основе, если odd или even string находится в базе данных?

One Solution collect form web for “Запрос списка кортежей в базе данных”

Ваш запрос не ясен для меня. Вы смешиваете структуры данных SQL и структуры данных Python, и неясно, будет ли это вызываться из Python или из SQL. Ваш запрос должен содержать код, который вы пытаетесь выполнить.

С такими простыми данными в ваших таблицах SQL вы можете думать о таблицах SQL, как о словарях Python. NUMSTR dict представляет собой первую таблицу SQL, и я изменяю X список кортежей в dict:

 NUMSTR = {1: 'one', 2: 'two', 3: 'three'} X = {'three': 'odd', 'one': 'odd', 'two': 'even'} def show_even_odd(in_numbers): numbers_info = [] for i in in_numbers: try: num_name = NUMSTR[i] eo = X[num_name] except KeyError: eo = '???' numbers_info.append(eo) print(' | '.join(['%4s' % x for x in numbers_info])) print(' | '.join(['%4s' % x for x in in_numbers])) def test(): show_even_odd([1, 2, 3]) 

Я сохранил данные в numbers_info чтобы отобразить их в одной строке. Было бы проще показать информацию о каждом номере в отдельной строке.

РЕДАКТИРОВАТЬ

Если ваша проблема состоит в том, чтобы получить первое значение каждого кортежа и отобразить его числовое значение, тогда такой код выглядит так:

 X = [('three','odd'), ('one','odd'), ('two','even')] for nn, eo in X: print('%s - %s' % (get_number(nn), eo)) 

Теперь вы должны определить get_number() . С глобальным cursor это может работать:

 def get_number(number_name): result = number_name cursor.execute('SELECT numeric FROM my_table WHERE String = ?', number_name) for txt in cursor.fetchall(): result = txt[0] return result 

PS В этом коде я использовал ? в SELECT чтобы подготовить подготовленный оператор. Он должен быть заменен на number_name драйвером ODBC. Такая операция может выполняться с помощью Python: "SELECT ... WHERE String = '%s'" % (number_name) , но подготовленные заявления намного лучше. Они препятствуют внедрению SQL Injection, и база данных может лучше кэшировать план запросов для таких операторов.

  • SQLAlchemy - не применяет ограничение внешнего ключа для отношений
  • Pypyodbc: Не удается открыть ошибку lib 'FreeTDS': file not found ") при попытке подключения к SQL-серверу
  • python и pymssql
  • sqlalchemy подключиться к серверу, не указывая базу данных
  • Получение данных из SQL с помощью pyodbc
  • Подключение к SQL Server 2012 с использованием sqlalchemy и pyodbc
  • SQL Server, Python и OS X
  • MSSQL в python 2.7
  • Выполнить .sql-файлы, которые используются для запуска в SQL Management Studio в python
  • Запись больших данных данных Pandas в базу данных SQL Server
  • Правильно ли привязка параметров в библиотеке pymssql?
  •  
    Interesting Posts for Van-Lav

    Как импортировать модули из разных папок в Python?

    Разница между переменными_scope и name_scope в TensorFlow

    TF slice_input_producer не синхронизирует тензоры

    Какова связь между средами и проектами в virtualenvwrapper?

    Легенда Matplotlib, добавлять элементы по столбцам, а не вниз

    В Django, как вы извлекаете данные из дополнительных полей для отношений «многие ко многим» без явного запроса?

    RuntimeError: максимальная глубина рекурсии превышена с помощью Python 3.2 pickle.dump

    Статические активы не отображаются для колбы на эластичном бобовом стебле

    Django NoReverseMatch

    Словарь не распознает ключи с плавающей запятой

    Запросы Django ORM не позволяют выбирать новые объекты

    Как вы присоединяетесь к двум таблицам в поле внешнего ключа с помощью django ORM?

    Как вычисляется значение R2 в Scikit?

    как найти список модулей, которые зависят от конкретного модуля в python

    Maya Python: cmds.button () с передаваемыми переменными UI и вызовом функции?

    Python - лучший язык программирования в мире.