我正在尝试通过 csv.DictReader 获取一个 csv 文件并将其转换为字典。这样做之后,我想修改字典的其中一列,然后将数据写入tsv文件。我正在处理文本中的单词和词频。
我已经尝试使用 dict.value() 函数来获取字典值,但是我收到一条错误消息,指出“AttributeError:DictReader 实例没有属性“值””
下面是我的代码:
#calculate frequencies of each word in Jane Austen's "Pride and Prejudice"
import csv
#open file with words and counts for the book, and turn into dictionary
fob = open("P&P.csv", "r")
words = csv.DictReader(fob)
dict = words
#open a file to write the words and frequencies to
fob = open("AustenWords.tsv", "w")
#set total word count
wordcount = 120697
for row in words:
values = dict.values()
print values
基本上,我有文本中每个单词的总计数(即“a”、“1937”),我想找到相关单词使用的总字数的百分比(因此,对于“a”,百分比将是 1937/120697。)现在我的代码没有执行此操作的等式,但我希望,一旦我获得每一行的值,将一行写入包含单词和计算的百分比。如果有人有更好的方法(或任何方法!)来做到这一点,我将不胜感激任何输入。
谢谢
最佳答案
回答基本问题 - “为什么我会收到此错误” - 当您调用 csv.DictReader()
时,返回类型是 iterator
不是 Dictionary
.
迭代器中的每个 ROW 都是一个 Dictionary
然后您可以将其用于您的脚本:
for row in words:
values = row.values()
print values
关于csv - 从 csv.DictReader 中查找字典值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5061352/