我是Python新手,我正在使用Smartsheet Data Tracker从CSV文件更新工作表。
我在Python中有关于数组列表管理的问题;我不知道这个错误,我在StackOverflow上读到了这个错误,但我不理解它:
错误:
"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)
答案 0 :(得分:2)
出现问题的是,您希望稍后list
创建append
。但是,之后使用字典覆盖它,您无法追加到该字典。这就是你获得AttributeError
。
要解决此问题,我可能会将您在self.csvData={stuff}
之后创建的词典(list
)重命名为self.meta
之类的其他内容。或者,您可以重命名list
。
无论哪个,您只需要删除命名冲突,这样两个变量就可以在命名空间中共存。
答案 1 :(得分:1)
实际上,这更像是Data Tracker项目中评论不佳的问题导致CSVCon.py文件混淆的问题。这些注释中的CSV配置设置是settings/sources.json
文件中应包含的内容的一个示例。
项目文档中的Configure Source部分提供了有关在sources.json文件中设置源代码的更多详细信息。
还有一个section专门解释CSV source。
令人困惑的评论已更新为更清晰。