Я должен создать словарь, основанный на CSV файл, который выглядит следующим образом:Создание словаря из текстового файла Python
'song, 2000, 184950'
'boom, 2009, 83729'
'boom, 2010, 284500'
'boom, 2011, 203889'
'pow, 2000, 385920'
'pow, 2001, 248930'
из этого, я должен создать словарь, состоящий из слова как и затем список объектов класса как значение.
Это то, что я до сих пор ...
class Counter():
__slots__ = ('year', 'count')
_types = (int, int)
def readfile(file):
d = dict()
with open(file) as f:
for line in f:
element = line.split(,)
for word in element:
if word in d:
d[word].append([Count(int(element[1]), int(element[2]))])
else:
d[word] = [Count(int(element[1]), int(element[2]))]
print(d)
выход я получаю это странно, и это дает мне словарь похоже на то, что шахта должна выглядеть, но это с помощью подсчета (183930) в качестве ключа вместо имени. Мне также нужно добавить класс в значение, если оно уже указано в словаре.
например, так как «стрела» уже должна быть в словаре с {'boom' : Count(year = 2009, count = 83729)}
Я хочу, чтобы список объектов Count был под одним значением.
ожидается выход:
{'song' : [Count(year= 2000, count= 184950)], 'boom' : [Count(year=2009, count=83729),
Count(year=2010, count= 284500), Count(year=2011, count=203889)], 'pow' : ...etc..}
@Martijn вы уверены, что '' 'должен быть в примере csv? Я думаю, что они имели смысл вокруг строки, но не как образец csv. – Vyktor
@Vyktor: ОП использовал это в своей выборке; Я оставлю это им, чтобы удалить его. –
Ваш код недействителен; в нем отсутствуют кавычки (например, вокруг запятой), а класс 'Counter()', как указано, не будет работать. Не могли бы вы дать нам * рабочий код *? –