Pypyodbc TabError: непоследовательное использование табуляции и пробелов в отступах

Кажется, это обычная проблема, но в моем случае я не могу найти ответ. Почему здесь говорится о непоследовательном использовании вкладок и отступов

def exectute_SQL():    #This function executes SQL to pull counts from a table where it wasnt possible to get an excel 
    con = pypyodbc.connect(conn_str)
    cur = con.cursor()
    sql = "SELECT * FROM Elig_Own.DST_Report_Validation_Test" #WHERE ysn_active = '1'"
    cur.execute(sql)

    rows = cur.fetchall()

    for row in rows:
        strFnd = 0
        strReportName = row[1]
        strSrcName = row[2]
        strDestName = row[3]
        strFileName = row[4]
        try:
            for report in strReportName:
                if report == 'STR_DB Load to SQL':
                    cur.execute("$result = SELECT TOP 1 COUNT(*) FROM Elig_Own.STR_DB GROUP BY LAST_UPDATED ORDER BY LAST_UPDATED DESC;")
                    cur.execute("INSERT INTO Elig_Own.DST_Report_Status_Test(TDate, Report, Records, Status) VALUES(CAST(GetDate() AS Date), 'STR_DB Load to SQL', ?, 'Passed')",(result))
                    con.commit()
        except:
            print("Couldnt execute script")

И это сообщение об ошибке

C:\Users\cn192406\Documents\Programs>python File_Check_Dart_Functions.py
File "File_Check_Dart_Functions.py", line 73
cur.execute("$result = SELECT TOP 1 COUNT(*) FROM Elig_Own.STR_DB GROUP BY LAST_UPDATED ORDER BY LAST_UPDATED DESC;")

TabError: непоследовательное использование табуляции и пробелов в отступах


person Ben Smith    schedule 23.09.2019    source источник


Ответы (1)


Попробуй это:

def exectute_SQL():  # This function executes SQL to pull counts from a table where it wasnt possible to get an excel
    con = pypyodbc.connect(conn_str)
    cur = con.cursor()
    sql = "SELECT * FROM Elig_Own.DST_Report_Validation_Test"  # WHERE ysn_active = '1'"
    cur.execute(sql)

    rows = cur.fetchall()

    for row in rows:
        strFnd = 0
        strReportName = row[1]
        strSrcName = row[2]
        strDestName = row[3]
        strFileName = row[4]
        try:
            for report in strReportName:
                if report == "STR_DB Load to SQL":
                    cur.execute(
                        "$result = SELECT TOP 1 COUNT(*) FROM Elig_Own.STR_DB GROUP BY LAST_UPDATED ORDER BY LAST_UPDATED DESC;"
                    )
                    cur.execute(
                        "INSERT INTO Elig_Own.DST_Report_Status_Test(TDate, Report, Records, Status) VALUES(CAST(GetDate() AS Date), 'STR_DB Load to SQL', ?, 'Passed')",
                        (result),
                    )
                    con.commit()
        except Exception as e:
            pass

person yukashima huksay    schedule 23.09.2019
comment
все та же ошибка. У меня было исключение, просто забыл включить его в фрагмент - person Ben Smith; 23.09.2019
comment
@BenSmith попробуйте скопировать и вставить мой код именно отсюда. вы, вероятно, перепутали в своем коде табуляции и пробелы. вы должны либо всегда использовать табуляцию для отступа, либо всегда использовать пробелы. Вы должны настроить свой редактор так, чтобы табуляция всегда заменялась пробелами или наоборот. - person yukashima huksay; 23.09.2019