2015-05-29 23 views
0

这是我目前遇到的一些问题的一小段应用程序。从无对象的对象访问python成员

import csv 
with open('eggs.csv', 'rb') as csvfile: 
    reader = csv.DictReader(csvfile) 
    for row in reader: 
     print(row['first_name'], row['cat']) 
     print(row[1]) 

应用程序部分运行正常,但没有问题,但我想通过第i个元素或通过数值访问'行'中的每个值。

但是,这似乎没有按预期发挥作用。

有没有一种特定的方式,我应该这样做,以访问成员项目,而不必直接调用他们的列名称。

帮助和澄清表示赞赏。

+3

不要使用'DictReader()',如果你想要的是一个列表的列表,然后使用'csv.reader()' – Jkdc

+0

我下面假设你要使用这两个键和索引,但是如果你只*想要索引@Jkdc是正确的,只需使用'reader'。 – jonrsharpe

+0

谢谢你们。伟大的洞察力和帮助我分配。 – andrew

回答

4

csv模块让你从文件的每行的数据存取的两大方法:

  1. 通过索引,使用reader;或
  2. 按键,使用DictReader

但是,请注意,DictReader实例有一个fieldnames属性,它是“序列,其元素,以便输入数据的字段相关联的”,所以从指数转换成键,您可以使用:

row[reader.fieldnames[1]] 
+0

这正是我所期待的。谢谢你的澄清和点答案! – andrew

+0

@andrew http://stackoverflow.com/help/someone-answers – jonrsharpe