2016-11-30 3 views
0

В настоящее время я возился с двумя файлами CSV. В основном, моя цель - получить значения из третьего столбца CSV-файла, только если первый столбец соответствует имени, а второй столбцу соответствует дате (возьмет все с даты начала до даты окончания). Я тестировал способы сделать это, но я не совсем понял свой ответ, так как я продолжаю получать ту же ошибку.Ошибка Python: объект int не подлежит индексированию

Вот моя текущая попытка:

name = "Art" 
for line in all_words_csv: 
    if(line[0] == name): 
     for line in range(1900, 1908): 
      print(line[2]) 

В настоящее время в Python 3.5

Спасибо.

Edit: Я ожидаю, что этот кусок, чтобы показать мне все значения в столбце 3, но цифры слишком велики, чтобы быть правдой:

for line in all_words_csv: 
if(line[0] == name): 
    for line[1] in range(1900, 1908): 
     print(line[2]) 
+4

'для линии в диапазоне (1900, 1908):' ... Я надеваю Не думаю, что вы хотите назвать это значение 'line' (Он перезаписывает строку в all_words_csv') –

+0

Gotcha. Теперь это имеет смысл. Извините, все еще возиться с Python – tokyolerd

ответ

2

Вы затирает значение line с диапазоном года.

Не видя ваш файл, я думаю, что вы собираетесь что-то вроде этого

name = "Art" 
for line in all_words_csv: 
    if(line[0] == name): 
     for year in range(1900, 1908): 
      if str(year) == line[2]: 
       print(line[2]) 

Или, возможно,

name = "Art" 
for line in all_words_csv: 
    if(line[0] == name): 
     if line[2] in map(str, range(1900, 1908)) 
      print(line[2]) 
+0

Интересно. Но как насчет, например, если я это сделаю: для строки в all_words_csv: if (строка [0] == имя): для линии [1] в диапазоне (1900, 1908): печать (строка [ 2]) – tokyolerd

+0

Не думаю, что 'line [1] in range' является допустимым синтаксисом –

Смежные вопросы