【发布时间】:2017-08-26 14:59:33
【问题描述】:
我有一个 csv 文件,看起来像这样:
username,permission,type,avtar
user1,op,member,goldilock
user2,guest
user3,guest
'type' 和 'avtar' 数据仅在第二行 (user1),对于 user2 和 user3,这将为空。 我想要实现的是从第二行获取类型和 avtar 数据并将其放入一个如下所示的 dict 中:
{'type': 'member', 'avtar': 'goldilock'}
我尝试使用内置的 csv.DictReader,我不想为此使用 panda。我可以使用上述模块将 csv 文件的所有内容放入 dict 中,但我不知道如何选择特定行并将它们放入 dict 中。
以下是我到目前为止的代码,是否可以使用 DictReader 模块来实现这一点?还是我应该采用另一种方法?
import csv
inputFile="test.csv"
with open(inputFile, "rb") as data:
reader = csv.DictReader(data)
for row in reader:
print row['type']
【问题讨论】:
-
第二行是指标题后的第一行?
-
是的,那是标题后的第一行,当我的意思是额外的行是空的时,我的意思是不会有数据。只有这两列的第二行保存数据。 (类型和头像)
-
DictReader 这样做,只需对其进行迭代并选择您想要的行。为了练习,您可以遍历 dictreader 并打印它
-
其实你想要的是文件中的第一行data(表头不算)。这意味着您可以简单地执行
row1 = next(csv.DictReader(data))。csv模块中的DictReader类将负责跳过标题——它使用它来确定读取一行数据后返回的字典中的键。
标签: python csv dictionary