Я читаю и распечатываю текст из файла .CSV. Я изо всех сил пытаюсь заставить его работать. Любая помощь будет большой.Неверный вывод Python без использования модуля csv и defaultdict
def readWordFile(fileName):
for line in fileName:
text = line.split(', ')
word = text[0]
newYearCount = createYearCount(int(text[1]), int(text[2]))
result = {}
if line not in result:
result[word] = [newYearCount]
else:
result[word].append(newYearCount)
print(result)
def main():
fileName = input('Enter filename: ')
readWordFile(open(fileName))
main()
я должен читать в CSV-файл, который представляет собой слово, год и вхождения этого слова в том же году:
airport, 2007, 175702
airport, 2008, 173294
request, 2005, 646179
request, 2006, 677820
request, 2007, 697645
request, 2008, 795265
wandered, 2005, 83769
wandered, 2006, 87688
wandered, 2007, 108634
wandered, 2008, 171015
Моя текущая выходная функция readWordFile выглядит как:
{'airport': [YearCount(year=2007, count=175702)]}
{'airport': [YearCount(year=2008, count=173294)]}
{'request': [YearCount(year=2005, count=646179)]}
{'request': [YearCount(year=2006, count=677820)]}
{'request': [YearCount(year=2007, count=697645)]}
{'request': [YearCount(year=2008, count=795265)]}
{'wandered': [YearCount(year=2005, count=83769)]}
{'wandered': [YearCount(year=2006, count=87688)]}
{'wandered': [YearCount(year=2007, count=108634)]}
{'wandered': [YearCount(year=2008, count=171015)]}
То, что я пытаюсь сделать, это попытаться напечатать правильный результат, посмотрите ниже.
{
’airport’: [
YearCount(year=2007, count=175702),
YearCount(year=2008, count=173294)
],
’wandered’: [
YearCount(year=2005, count=83769),
YearCount(year=2006, count=87688),
YearCount(year=2007, count=108634),
YearCount(year=2008, count=171015)
],
’request’: [
YearCount(year=2005, count=646179),
YearCount(year=2006, count=677820),
YearCount(year=2007, count=697645),
YearCount(year=2008, count=795265)
]
}
Спасибо.
Вы должны использовать стандартный модуль [csv] (https://docs.python.org/2/library/csv.html) и defaultdict. –
Если у вас есть новый вопрос, спросите [* новый вопрос *] (http://stackoverflow.com/questions/ask) (или еще лучше, найдите ответ, потому что я уверен, что на него был дан ответ раньше). Не редактируйте этот вопрос, чтобы стать новым - это просто делает существующий ответ недействительным для нового вопроса, и все это становится запутанным и бесполезным для будущих посетителей. –