Я новичок в Python, и в настоящее время я озадачен этой проблемой:
У меня есть список сгенерированных словарей csv.DictReader
. Я создал список с функцией следующим образом:
def csvToDictList(filename):
reader = csv.DictReader(open(filename, 'rb'))
list = []
for row in reader:
list.append(row)
return (list, reader.fieldnames)
Это сработало замечательно, но файл CSV, который я обрабатываю, содержит повторяющиеся столбцы, поэтому я получаю словарь:
[
{'Column1': 'Value1', 'Column2': 'Value2', ... <some unique columns and values> ..., 'Column1': 'Value1', 'Column2': 'Value2'},
...
{'Column1': 'Value1N', 'Column2': 'Value2N', ... <some unique columns and values> ..., 'Column1': 'Value1N', 'Column2': 'Value2N'}
]
Мой главный вопрос: как удалить дубликаты столбцов из этого списка словарей?
Я думал об итерациях по каждому ключу, а затем об удалении столбца при обнаружении дублированного имени ключа с чем-то вроде этого:
def removeColumn(dictList, colName):
for row in dictList:
del row[colName]
Но разве это не удалит оба столбца? Должен ли я работать с хеш-ключами словаря? Любая помощь приветствуется!
РЕДАКТИРОВАТЬ: Дубликаты, которые я видел, фактически присутствовали в списке reader.fieldnames
. Итак, я предполагал, что словари также содержат эти столбцы, что было неверным предположением.