将MySQL + Tkinter集成到Python中时出现问题

时间:2020-05-06 09:38:26

标签: python mysql python-3.x tkinter

我需要使用Python从SQL数据库中获取一些数据。

我通常会执行以下操作

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按钮调用。

有什么主意吗?我将不胜感激。

我已经编程了一个星期,如果错误很明显,请不要太苛刻。

0 个答案:

没有答案