Python 尝试从CSV索引数据

Python 尝试从CSV索引数据,python,indexing,Python,Indexing,不久前我开始做一个简单的程序,现在我又重新开始了。我在这里试图做的是使用一个索引来操纵CSV数据的打印顺序。当我运行这段代码时,我得到“IndexError:list index超出范围”。我做错了什么或错过了什么?提前谢谢 import csv mags = csv.reader(open("mags.csv","rU")) for row in mags: print [titles.upper( ) for titles in row] print [row[i

不久前我开始做一个简单的程序,现在我又重新开始了。我在这里试图做的是使用一个索引来操纵CSV数据的打印顺序。当我运行这段代码时,我得到“IndexError:list index超出范围”。我做错了什么或错过了什么?提前谢谢

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)]

根据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]

您的错误看起来好像在代码的最后一行。看起来您的循环遇到了一个包含0个字段的空行,所以行[index]抛出索引器。或者该行只有1个字段,因此当索引为1时,行[index]抛出错误。这将解决这个问题:

if len(row) >= 2:
    print [row[index] for index in (1, 0)]

粘贴的代码包含错误,未定义变量
mags
。在将其替换为成员后,我没有发现任何错误。CSV文件的内容是什么?奇怪。你是说如果你替换“mags”变量,你就不再得到索引器了吗?CSV包含杂志的标题和日期。是的,我没有看到带有我自己的CSV文件的
索引器
,所以我想知道CSV文件中的一些行是否会导致这个问题。你能从CSV文件中粘贴一些行吗?或者,您可以在打印列表之前打印出
,这有助于查找问题。谢谢ILYA。这完全颠倒了我想要的数据顺序。现在我需要弄清楚如何在同一行上打印。您可以使用:
print','.join(row)
if len(row) >= 2:
    print [row[index] for index in (1, 0)]