Мне нужно получить некоторые данные из базы данных 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, если ошибка очевидна.