Search code examples
pythontuplestypeerror

TypeError tuple indices must be integers or slices not datetime


I am trying to pass a certain index of a record from an object to my main function but when doing so I get this tuple error. Both of the records are time types and I'm not sure what I'm doing wrong to cause this.. let me know if I can clarify anything further.

load_file.py

def get_connection():
    cursor = connection.cursor()
    cursor.execute(
        "SELECT ID, Type, Server, Port, User, Password, isActive, FileExtension, FileContains, FileLocation, "
        "ScheduleMinutes, IntervalTime from DataConnection WHERE isActive=True")

    return cursor.fetchall()


class FileData:
    def __init__(self):
        self.interval_time = None
        self.schedule_minutes = None

    def data_connection(self, data_connection_detail):
        self.schedule_minutes = data_connection_detail[10]
        self.interval_time = data_connection_detail[11]

main.py

from load_file import get_connection
from load_file import FileData



def run_engine():
    file_data = FileData()
    while True:
        data = get_connection()
        for data_connection_detail in data:
            file_data.data_connection(data_connection_detail)
            schedule_minutes = data_connection_detail[file_data.schedule_minutes]
            interval_time = data_connection_detail[file_data.interval_time]

            download_files(data)
            import_records(data)


if __name__ == "__main__":
    run_engine()

Solution

  • You don't need to retrieve schedule_minutes and interval_time from data_connection_detail, since FileData.data_connection() method already does that for you.

    def run_engine():
        file_data = FileData()
        while True:
            data = get_connection()
            for data_connection_detail in data:
                file_data.data_connection(data_connection_detail)
    ===
    -           schedule_minutes = data_connection_detail[file_data.schedule_minutes]
    -           interval_time = data_connection_detail[file_data.interval_time]
    ===
    +           schedule_minutes = file_data.schedule_minutes
    +           interval_time = file_data.interval_time
    ===
                download_files(data)
                import_records(data)