Попытка индексировать данные из CSV - PullRequest
0 голосов
/ 08 декабря 2011

Я начал работать над простой программой некоторое время назад и вернулся к ней. То, что я пытаюсь сделать здесь, это использовать индекс для управления порядком, в котором печатаются данные из CSV. Когда я запускаю этот код, я получаю «IndexError: список индекса выходит за пределы диапазона». Что я делаю неправильно или отсутствует? Заранее спасибо.

import csv

mags = csv.reader(open("mags.csv","rU"))

for row in mags:

     print [titles.upper( ) for titles in row]

     print [row[index] for index in (1, 0)]

Ответы [ 2 ]

1 голос
/ 08 декабря 2011

Ваша ошибка выглядит так, как будто она находится в последней строке кода.Похоже, ваш цикл встречает пустую строку с 0 полями, поэтому row [index] выбрасывает IndexError.Или, возможно, строка имеет только 1 поле, поэтому row [index] выдает ошибку, когда index равен 1. Это исправит это:

1 голос
/ 08 декабря 2011

Согласно документации в csv.reader () каждая строка, считанная из файла csv, возвращается в виде списка строк. Я предполагаю, что в вашем файле есть пустые поля или строки.

Так что вы должны сделать что-то вроде:

members = csv.reader(open("mags.csv","rU"))
for row in members:
 for index in (1, 0):
   if index < len(row):
      print row[index]

Но вы также можете использовать:

members = csv.reader(open("mags.csv","rU"))
for row in members:
  row.reverse()
  for element in row:
     print element
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...