Python:TypeError:Value必须是序列

Python:TypeError:Value必须是序列,python,typeerror,openpyxl,Python,Typeerror,Openpyxl,我的代码: def write_excel(filename, sheetname, dataframe): with pd.ExcelWriter(filename, engine='openpyxl', mode='a') as writer: workBook = writer.book try: workBook.remove(workBook[sheetname]) except:

我的代码:

def write_excel(filename, sheetname, dataframe):
    with pd.ExcelWriter(filename, engine='openpyxl', mode='a') as writer:
        workBook = writer.book
        try:
            workBook.remove(workBook[sheetname])
        except:
            print("Worksheet does not exist")
        finally:
            dataframe.to_excel(writer, sheet_name=sheetname, index=False)
            writer.save()


write_excel(r"C:\Users\Harshad\Documents\Project\Files\Backtest.xlsx", '888', df_normalized)
错误位于:

 write_excel(r"C:\Users\Harshad\Documents\Project\Files\Backtest.xlsx", '888', df_normalized)
我的错误是:

Traceback (most recent call last):
  File "C:/Users/Harshad/Documents/Project/Code/Step-4-Normalizing 888Sport Odds.py", line 66, in <module>
    write_excel(r"C:\Users\Harshad\Documents\Project\Files\Backtest.xlsx", '888', df_normalized)
  File "C:/Users/Harshad/Documents/Project/Code/Step-4-Normalizing 888Sport Odds.py", line 55, in write_excel
    with pd.ExcelWriter(filename, engine='openpyxl', mode='a') as writer:
  File "C:\Users\Harshad\PycharmProjects\Self Project\venv\lib\site-packages\pandas\io\excel\_openpyxl.py", line 25, in __init__
    book = load_workbook(self.path)
  File "C:\Users\Harshad\PycharmProjects\Self Project\venv\lib\site-packages\openpyxl\reader\excel.py", line 315, in load_workbook
    reader.read()
  File "C:\Users\Harshad\PycharmProjects\Self Project\venv\lib\site-packages\openpyxl\reader\excel.py", line 280, in read
    self.read_worksheets()
  File "C:\Users\Harshad\PycharmProjects\Self Project\venv\lib\site-packages\openpyxl\reader\excel.py", line 266, in read_worksheets
    pivot = TableDefinition.from_tree(tree)
  File "C:\Users\Harshad\PycharmProjects\Self Project\venv\lib\site-packages\openpyxl\descriptors\serialisable.py", line 83, in from_tree
    obj = desc.from_tree(el)
  File "C:\Users\Harshad\PycharmProjects\Self Project\venv\lib\site-packages\openpyxl\descriptors\sequence.py", line 85, in from_tree
    return [self.expected_type.from_tree(el) for el in node]
  File "C:\Users\Harshad\PycharmProjects\Self Project\venv\lib\site-packages\openpyxl\descriptors\sequence.py", line 85, in <listcomp>
    return [self.expected_type.from_tree(el) for el in node]
  File "C:\Users\Harshad\PycharmProjects\Self Project\venv\lib\site-packages\openpyxl\descriptors\serialisable.py", line 103, in from_tree
    return cls(**attrib)
  File "C:\Users\Harshad\PycharmProjects\Self Project\venv\lib\site-packages\openpyxl\pivot\table.py", line 601, in __init__
    self.x = x
  File "C:\Users\Harshad\PycharmProjects\Self Project\venv\lib\site-packages\openpyxl\descriptors\sequence.py", line 25, in __set__
    raise TypeError("Value must be a sequence")
TypeError: Value must be a sequence
回溯(最近一次呼叫最后一次):
文件“C:/Users/Harshad/Documents/Project/Code/Step-4-Normalizing 888Sport Lobbs.py”,第66行,在
编写excel(r“C:\Users\Harshad\Documents\Project\Files\Backtest.xlsx”,“888”,df\u规范化)
文件“C:/Users/Harshad/Documents/Project/Code/Step-4-Normalizing 888Sport Lobbits.py”,第55行,在excel中编写
使用pd.ExcelWriter(文件名,engine='openpyxl',mode='a')作为编写器:
文件“C:\Users\Harshad\PycharmProjects\Self Project\venv\lib\site packages\pandas\io\excel\\u openpyxl.py”,第25行,在初始化__
book=load\u工作簿(self.path)
文件“C:\Users\Harshad\PycharmProjects\Self Project\venv\lib\site packages\openpyxl\reader\excel.py”,第315行,在load\u工作簿中
reader.read()
文件“C:\Users\Harshad\PycharmProjects\Self Project\venv\lib\site packages\openpyxl\reader\excel.py”,第280行,已读
self.read_工作表()
文件“C:\Users\Harshad\PycharmProjects\Self Project\venv\lib\site packages\openpyxl\reader\excel.py”,第266行,在read_工作表中
pivot=TableDefinition.from_树(树)
文件“C:\Users\Harshad\PycharmProjects\Self Project\venv\lib\site packages\openpyxl\descriptors\serialisable.py”,第83行,在from_树中
obj=描述自树(el)
文件“C:\Users\Harshad\PycharmProjects\Self Project\venv\lib\site packages\openpyxl\descriptors\sequence.py”,第85行,在from_树中
返回[节点中el的_树(el)中的self.expected_type.]
文件“C:\Users\Harshad\PycharmProjects\Self Project\venv\lib\site packages\openpyxl\descriptors\sequence.py”,第85行,在
返回[节点中el的_树(el)中的self.expected_type.]
文件“C:\Users\Harshad\PycharmProjects\Self Project\venv\lib\site packages\openpyxl\descriptors\serialisable.py”,第103行,在from_树中
返回cls(**attrib)
文件“C:\Users\Harshad\PycharmProjects\Self Project\venv\lib\site packages\openpyxl\pivot\table.py”,第601行,在u init中__
self.x=x
文件“C:\Users\Harshad\PycharmProjects\Self Project\venv\lib\site packages\openpyxl\descriptors\sequence.py”,第25行,在__
raise TypeError(“值必须是序列”)
TypeError:值必须是序列
这个密码一直有效到昨天。我如何解决它?
谢谢

我不知道这是否有帮助,但engine参数已被弃用。不过,另一个答案看起来很有希望:

解决方案:

文件:
问题出在openpyxl上。我运行的版本是3.0.5。 它与3.0.4完美配合,但不适用于更高版本。但是我没有机会测试3.0.6版本。 降级到3.0.4有帮助且有效。

请提供预期(MRE)。显示中间结果与您预期的不同之处。我们应该能够复制和粘贴一个连续的代码块,执行该文件,并再现您的问题以及跟踪问题点的输出。这让我们可以根据您的测试数据和期望的输出来测试我们的建议。您发布的代码无法运行。