Отслеживание данных Smartsheet: AttributeError: объект dict не имеет атрибута append
Я новичок в Python и работаю с Smartsheet Data Tracker, чтобы обновить лист из файла CSV.
У меня проблемы с управлением списком массивов в Python; Я не знаю об этой ошибке, я читал об этой ошибке в Stackru, но я не понимаю ее:
Ошибка:
"File "C:\Users\David\DataTraker\connectors\CSVCon.py", line 61, in __init__
self.csvData.append(readerRow)
AttributeError: 'dict' object has no attribute 'append'"
И мой код:
def __init__(self, sourceConfig):
self.csvData = []
self.csvData = {"sourceId": "siniestros",
"connectorClassName": "CSVCon",
"fileName": "siniestros.csv",
"isStrict": False}
for readerRow in sourceReader:
self.csvData.append(readerRow)
2 ответа
Что идет не так, что вы создаете list
на который вы хотели бы append
потом. Однако впоследствии вы перезаписываете его словарем, к которому вы не можете добавить. Вот почему вы получаете AttributeError
,
Чтобы это исправить я бы переименовал твой словарь (self.csvData={stuff}
) что вы создали после вашего list
к чему-то еще, такому как self.meta
возможно. Кроме того, вы можете переименовать list
,
Неважно, что, вам просто нужно удалить конфликт имен, чтобы обе переменные могли сосуществовать в пространстве имен.
На самом деле, это была проблема плохо прокомментированного кода в проекте Data Tracker, что вызвало путаницу в файле CSVCon.py. Параметры конфигурации CSV, содержащиеся в этих комментариях, являются примером того, что должно быть в settings/sources.json
файл.
Раздел " Конфигурирование источника " в документации по проекту содержит более подробные сведения о настройке источника в файле sources.json.
Также есть раздел с объяснением источника CSV.
Запутывающие комментарии были обновлены, чтобы быть более понятными.