Python错误的输出没有使用csv模块和defaultdi

2024-09-29 17:11:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在读取并打印.CSV文件中的文本。我正在努力让它工作。任何帮助都会很好。你知道吗

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 )
    ]
}

谢谢。你知道吗


Tags: 文件textrequestdefcountlineresultfilename
1条回答
网友
1楼 · 发布于 2024-09-29 17:11:22
import csv
from collections import defaultdict

result = defaultdict(list)

csv_reader = csv.reader(fileName)

for row in csv_reader:
    result[row[0]].append(createYearCount(int(row[1]), int(row[2]))

print result

相关问题 更多 >

    热门问题