【发布时间】:2018-06-18 05:54:51
【问题描述】:
我正在尝试从 CSV 的 cmets 表中创建几个字典,其中包含以下列:
我需要为每一行创建一个字典(希望使用循环,这样我就不必手动创建它们),其中字典键是:
- 身份证
- 评论类型
- 评论
但是,我想不出一个快速的方法来做到这一点。我尝试使用以下代码创建字典列表:
# Import libraries
import csv
import json
import pprint
# Open file
reader = csv.DictReader(open('Comments.csv', 'rU'))
# Create list of dictionaries
dict_list = []
for line in reader:
dict_list.append(line)
pprint.pprint(dict_list)
但是,现在我不知道如何访问字典或键值对是否正确匹配,如下图所示:
- ID、ReviewType 和 Comment 似乎没有显示为 字典键
- Comment 值似乎显示为半句列表。
有没有办法只为每一行创建一个字典而不是一个字典列表?
注意:我确实看过this 问题,但它并没有真正帮助。
【问题讨论】:
-
按照您指定问题的方式,您似乎期待某种稀疏输入,否则使用列表可能会更好,不是吗?
-
另外,我看不出字典的(唯一)键是什么。假设您有三个不同的字典,您希望如何访问它们中的每一个?只需通过 ID?
-
你会得到一个
OrderedDict作为结果。您可以像普通的dict一样访问它。 (或者您可以从中创建一个dict- 如果您愿意的话。) cmets 很好;pprint只是将它们放在多行上。 -
使用字典的目的是因为我想稍后使用 NLTK 显示单词的计数。字典的唯一键是 ID。
-
@drmyrnz 我的解决方案有效吗?
标签: python-3.x csv dictionary