【问题标题】:Python - list indices must be integers or slices, not strPython - 列表索引必须是整数或切片,而不是 str
【发布时间】:2019-03-17 05:24:21
【问题描述】:

python 新手,由于某些原因,我认为我的代码很好,但由于某些原因,我不断收到此错误:

列表索引必须是整数或切片,而不是 str

csv_path = os.path.join("Resources", "budget_data.csv")

with open(csv_path, newline="", encoding='utf-8') as budget_data:
    csv_reader = csv.reader(budget_data, delimiter=',')

    total_amount = 0

    for row in csv_reader:
        total_amount =  total_amount + int(row['profit/losses'])

【问题讨论】:

  • 我不知道您的budget_data.csv 文件的结构。但我相信将您的list 转换为dictionary 将解决它。 csv_reader = dict(csv.reader(budget_data, delimiter=','))
  • Python-3.x 和 Python-2.7 本质上是两种不同的语言。你到底用的是哪一个?

标签: python-3.x


【解决方案1】:

row 是一个列列表。它必须用整数索引。

如果您想使用列名作为索引,您需要csv.DictReader() 而不是csv.reader()

【讨论】:

  • 我正在使用 python 3。感谢您的回答。它通过使用 csv.DictReader 工作
猜你喜欢
  • 2017-10-09
  • 1970-01-01
  • 2016-05-25
  • 2020-05-14
  • 2020-11-21
  • 2017-10-08
  • 2019-12-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多