Получение "TypeError: ожидаемая строка или байтовый объект" при сохранении объекта - PullRequest
0 голосов
/ 05 мая 2020

У меня проблема с загрузкой данных из Excel в базу данных с использованием Django. Когда эта функция запускается, предполагается, что данные в указанном диапазоне будут получены и загружены в базу данных при запуске q.save.

def scrapeExcel(excel):
    uploadQuery = []

    wb = load_workbook(excel)

    for sheet in wb.worksheets:
        last_row = sheet.max_row

        if sheet == wb.worksheets[0]:
           fullName = sheet.cell(row = 16, column = 4).value
            for row in sheet.iter_rows(min_row = 20, max_row = last_row - 1):
                curRow = []
                for cell in row:
                    curRow.append(cell.value)
                uploadQuery.append(
                    time(
                        file = excel,
                        fullname = fullName,
                        cdate = get_date(curRow[3]),
                        dayname = curRow[4],
                        units = curRow[9],
                        submitteddate = get_date(curRow[11]),
                        approveddate = get_date(curRow[15]),
                        project = curRow[21],
                        name = curRow[22],
                        comment = curRow[25],
                        locationname = curRow[26],
                        status = 1
                    )
                )

    for q in uploadQuery:
        q.save()

Когда я запускаю это, я получаю следующую ошибку.

TypeError: expected string or bytes-like object

Когда я проверял каждое значение с помощью print или sys.stderr.write, я знал, что они получают правильное значение. Но внутри for l oop, если я проверю, что такое q, с

for q in uploadQuery:
    sys.stderr.write('  query--{}   '.format(q))
    q.save()

он просто говорит

query--time Object (none)

Итак, я предполагаю, что он не добавляется к uploadQuery ? или это неправильный способ перебора uploadQuery для сохранения?

Заранее спасибо!

...