【问题标题】:Python IndexError: list index out of range with CSV filePython IndexError:使用 CSV 文件列出超出范围的索引
【发布时间】:2018-07-30 20:52:11
【问题描述】:

我正在尝试从 Twitter 读取 .CSV 数据文件的内容以执行一些情绪分析。该文件有四列应该被拉出,但我在使用以下代码块时遇到了一些问题:

tweets = []

with open('tweets.csv','r', encoding = 'utf-8', newline='') as csvfile:
    reader = csv.reader(csvfile, delimiter=',')
    next(reader)
    for row in reader:
        tweet = dict()
        tweet['user'] = row[0]
        tweet['date'] = row[1]
        tweet['type'] = row[2]
        tweet['orig'] = row[3]

运行脚本时出现错误

    Traceback (most recent call last):
    File "analysis.py", line 46, in <module>
    tweet['user'] = row[0]
    IndexError: list index out of range

环顾四周,我发现这是一个常见问题,但由于我对 Python 还很陌生,我不确定如何实施修复,或者我做错了什么。

编辑我发现如果我手动进入 .CSV 文件并删除行之间的空行,一切正常。所以我想问题是,我将如何最好地实现这一点?

【问题讨论】:

  • 如果您尝试打印row,它会给您带来什么?
  • 我是 Python 新手,所以不确定这是否正确,但如果我尝试它,我会收到 Traceback(最近一次调用最后一次):文件“analysis.py”,第 44 行,在 下一个(读者)停止迭代
  • 回答编辑:你可以保留一张支票if(len(row)==4): tweet=dict()...
  • 现在一切正常,感谢您的耐心等待!

标签: python-3.x csv twitter sentiment-analysis


【解决方案1】:

修改代码如下,问题解决。

    for row in reader:
        if (len(row) == 4):
            tweet = dict()
            tweet['user'] = row[0]
            tweet['date'] = row[1]
            tweet['type'] = row[2]
            tweet['orig'] = row[3]

【讨论】:

  • 你真的应该修复你的输入文件;这不是有效的 CSV。
猜你喜欢
  • 2018-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-25
  • 2017-04-05
  • 2012-07-15
  • 2013-06-04
  • 1970-01-01
相关资源
最近更新 更多