【发布时间】:2015-04-02 05:02:29
【问题描述】:
我有一个 for 循环,可以创建几个字典作为输出。我想将所有这些字典捕获到一个列表中。这个怎么做?在下面的示例中,当您打印行时,循环会生成数百个字典。我想将整个 dict 输出封装为一个列表。我的代码在下面,但转储了许多列表和字典。
reader = csv.DictReader(f)
for row in reader:
print row #for debug
for key, value in row.iteritems():
temp=[key,value]
alist.extend(temp)
print alist
alist 应该是这样的 [{k,v},{k2,v2},{k3,v3}...]
【问题讨论】:
-
我看到了两个问题;一是您的代码没有创建任何字典,二是
{k,v}不是有效的字典语法。 -
这是不正确的,代码正在创建字典,因为 csv.dictreader。自己试试。 f 只是一个 csv 文件,里面有一些列和数据。
-
如果你想要列表而不是字典,为什么要
csv.DictReader而不仅仅是csv.reader(返回列表)?看来您是在为自己工作。 -
我想要一个字典列表,如我的 alist 输出所示。
-
您对字典文字的语法有误。
{k,v}是一个二元素集,而不是单元素字典。在您想要的输出中,k和v值的来源也不是很清楚。它们都来自 CSV 文件的同一行吗?文件下一行的数据在输出中的外观如何?
标签: python