2011-02-02 28 views
3

我有一個CSV文件,並想獲得,比如說一個特定的值,第20行,第3列獲取特定的行和值與Python DictReader

但到目前爲止,我所管理的是顯示所有列3(這裏稱爲「名稱」)上的值爲

這裏是我的Python代碼

d = DictReader(r.csv().split('\n')) 
for line in d: 
    score = line["name"] 
    print score 

如何顯示,並獲得價值只有特定行?

回答

5

樸素溶液:

target_row = 5 
    for num, line in enumerate(d): 
     if num == target_row: 
      print line["name"] 
      break 

我除去中間變量score

請注意,這是非最佳的,因爲您迭代,直到您到達所需的行,但我不知道是否有隨機訪問DictReader中的行。

+0

它的工作原理。謝謝! – tucson 2011-02-02 16:10:02

2

直接跳到所需的線路,正如在其他的答案,但切片的CSV閱讀迭代器代替人工循環:

import csv, itertools 
rownum = 20 
colname = "name" 
line = itertools.islice(d, rownum - 1, rownum).next() 
score = line[colname] 

(不是最漂亮的代碼,我知道,但這只是爲了說明這一點)。