【发布时间】:2018-07-07 01:08:42
【问题描述】:
我正在编写一个程序来对 csv 文件进行排序。它应该从文件中提取行,并根据字典中是否已经存在“捐助者”,将“捐助者”添加到字典中或将行中的信息附加到旧值。我收到错误声明:
错误声明:文件“C:/Users/riley/Desktop/Python Files/MYLATEST1.py”,第 27 行,在 捐助者[捐助者] = [[数据]] builtins.TypeError:列表索引必须是整数或切片,而不是元组
我是 python 新手,但似乎 python 将我的字典解释为一个列表。这是怎么回事?如果是这样,为什么?感谢您的帮助!
def createDonorDirect():
listoffiles = glob.glob('C:/Users/riley/Desktop/mydata//*.csv') #glob allows you to create a list of files/folders that match wildcard expression in this case all the csv files in the directory
# Create donors directory
donors = {}
for filename in listoffiles:
with open(filename) as file:
for line in file:
# line processing stuff
data = line.split(',')
donor = ''.join(data[3,5,7])
# populate data structure
if donor in donors:
donors[donor].append(data)
else:
donors[donor] = [[data]]
【问题讨论】:
-
data[3,5,7]更有可能是罪魁祸首。其他东西可能搞砸了错误信息;也许你在 Python 打开后编辑了源代码之类的。 -
关于如何以不同方式格式化数据[3,5,7] 的任何建议,但仍然包含识别我的“捐赠者”的所有必要信息?
标签: python list dictionary tuples