csv - 从 csv.DictReader 中查找字典值

标签 csv dictionary

我正在尝试通过 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/

相关文章:

c - 我写入文件但更改未保存

ios - 如何在字典数组中组合两个字典

mysql - mysql中缺少行

python - Pandas read_csv dtype 推断具有许多 int 列的文件,除了索引和列是字符串

python - Pandas :比较行值并修改下一列的行值

c++ - 使用字符串和枚举映射时,Switch执行第一种情况而不是默认情况

c# - 将对象映射到字典,反之亦然

Python/Pandas - 将字典列表放入 Pandas DataFrame 中 - 字典键应该是列

c - 如何将一个枚举的元素映射到另一个枚举的元素?

sql-server - 将 CSV 从 Azure blob 加载到 Azure SQL 的 SSIS 步骤