Проблема интеграции MySQL + Tkinter в Python - PullRequest
0 голосов
/ 06 мая 2020

Мне нужно получить некоторые данные из базы данных SQL, используя Python.

Я обычно делаю следующее

import mysql.connector
from tkinter import *
from tkinter import messagebox
from tkinter import ttk

(...)

cursor.execute("SELECT  * FROM solicitudes WHERE (fechaentrada BETWEEN %s AND %s) ", solicitudes2)

w=cursor.fetchall()

print(w)

Что при желании выводит:

[(1, None, 'HM', 'prueba1', 'prueba1', 'MP', None, None, datetime.date(2020, 1, 1), datetime.date(2020, 5, 1), 'Sin disp', None), (2, None, 'HCL', 'prueba1', 'prueba1', 'AD', None, None, datetime.date(2020, 1, 1), datetime.date(2020, 5, 1), 'Sin disp', None), (3, None, 'HCR', 'prueba2', 'prueba2', 'AD', None, None, datetime.date(2020, 1, 10), datetime.date(2020, 5, 1), 'TA+2', None)]

На этот раз, однако, я получаю этот «необработанный формат» с таким точным кодом:

[{'id': 1, 'fecharegistro': None, 'hotel': 'HM', 'agencia': 'prueba1', 'pax': 'prueba1', 'regimen': 'MP', 'DUIrooms': None, 'SGrooms': None, 'fechaentrada': datetime.date(2020, 1, 1), 'fechasalida': datetime.date(2020, 5, 1), 'Propuesta': 'Sin disp', 'Comentario': None}, {'id': 2, 'fecharegistro': None, 'hotel': 'HCL', 'agencia': 'prueba1', 'pax': 'prueba1', 'regimen': 'AD', 'DUIrooms': None, 'SGrooms': None, 'fechaentrada': datetime.date(2020, 1, 1), 'fechasalida': datetime.date(2020, 5, 1), 'Propuesta': 'Sin disp', 'Comentario': None}, {'id': 3, 'fecharegistro': None, 'hotel': 'HCR', 'agencia': 'prueba2', 'pax': 'prueba2', 'regimen': 'AD', 'DUIrooms': None, 'SGrooms': None, 'fechaentrada': datetime.date(2020, 1, 10), 'fechasalida': datetime.date(2020, 5, 1), 'Propuesta': 'TA+2', 'Comentario': None}]

Если я попробую print(w[1][2]), который обычно возвращает 'HM', я получаю эта ошибка:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\usuario\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 1883, in __call__
    return self.func(*args)
  File "c:/www/CursoPandas/Solicitudes/06septimointentoapp.py", line 146, in nueva_solicitud
    panoramica()
  File "c:/www/CursoPandas/Solicitudes/06septimointentoapp.py", line 379, in panoramica
    print(w[1][2])
KeyError: 1

Код находится в функции с именем panoramica(), которая вызывается функцией с именем nueva_solicitud(), которая вызывается с помощью кнопки Tkinter.

Любая идея ? Буду признателен.

Я занимаюсь программированием уже неделю, пожалуйста, не будьте слишком строгими sh, если ошибка очевидна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...