gpt4 book ai didi

excel - 类型错误 : 'generator' object is not subscriptable

转载 作者:行者123 更新时间:2023-12-02 12:26:25 27 4
gpt4 key购买 nike

import openpyxl
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb.active
sheet.columns[1]
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
sheet.columns[1]
TypeError: 'generator' object is not subscriptable

我是Python初学者,这是我第一次提出我的问题。我坚持上面的 TypeError 说,“生成器”对象不可下标。我想我准确地输入了网站上写的代码。网站网址为https://automatetheboringstuff.com/chapter12/

请帮我解决这个错误。

最佳答案

该教程是为旧版本的 openpyxl 库 2.3.3 设计的。从那时起,.columns 的行为发生了一些变化——我懒得查找确切的时间——现在它生成了一个生成器(一个惰性对象,实际上并不做任何事情)除非被要求,否则可以进行任何工作。)

如果您不太关心性能,您可以在 .columns 返回的生成器上调用 list,然后选择适当的列:

>>> sheet.columns[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'generator' object is not subscriptable
>>> list(sheet.columns)[0]
(<Cell Sheet1.A1>, <Cell Sheet1.A2>, <Cell Sheet1.A3>, <Cell Sheet1.A4>, <Cell Sheet1.A5>, <Cell Sheet1.A6>, <Cell Sheet1.A7>)
>>> list(sheet.columns)[1]
(<Cell Sheet1.B1>, <Cell Sheet1.B2>, <Cell Sheet1.B3>, <Cell Sheet1.B4>, <Cell Sheet1.B5>, <Cell Sheet1.B6>, <Cell Sheet1.B7>)

或者按名称选择列:

>>> sheet["A"]
(<Cell Sheet1.A1>, <Cell Sheet1.A2>, <Cell Sheet1.A3>, <Cell Sheet1.A4>, <Cell Sheet1.A5>, <Cell Sheet1.A6>, <Cell Sheet1.A7>)

或者 - 这可能是最简单的,具体取决于您想花多少时间来解决可能遇到的其他问题 - 您可以降级到 2.3.3。

关于excel - 类型错误 : 'generator' object is not subscriptable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42603795/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com