cowein 2024-03-14 06:08 采纳率: 0%
浏览 13

TypeError: 'set' object is not subscriptable

def manytoonebypyexcel():
    from pyexcel import cookbook
    import glob
   
    cookbook.merge_all_to_a_book(glob.glob("*.xlsx"),'output.xlsx')

if __name__=='__main__':
    import time
    starttime=time.time()
    manytoonebypyexcel()
    endtime=time.time()
    print(endtime-starttime)

已经安装了 pyexcel-xls pyexcel-xlsx插件
但是还是出现了问题了,提示如下:

 File "D:\OneDrive\py_win\python312\Lib\site-packages\pyexcel\cookbook.py", line 147, in merge_all_to_a_book
    merged += get_book(file_name=file_name)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\OneDrive\py_win\python312\Lib\site-packages\pyexcel\core.py", line 47, in get_book
    book_stream = sources.get_book_stream(**keywords)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\OneDrive\py_win\python312\Lib\site-packages\pyexcel\internal\core.py", line 38, in get_book_stream
    sheets = a_source.get_data()
             ^^^^^^^^^^^^^^^^^^^
  File "D:\OneDrive\py_win\python312\Lib\site-packages\pyexcel\plugins\sources\file_input.py", line 38, in get_data
    sheets = self.__parser.parse_file(self.__file_name, **self._keywords)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\OneDrive\py_win\python312\Lib\site-packages\pyexcel\plugins\parsers\excel.py", line 19, in parse_file
    return self._parse_any(file_name, **keywords)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\OneDrive\py_win\python312\Lib\site-packages\pyexcel\plugins\parsers\excel.py", line 40, in _parse_any
    sheets = get_data(anything, file_type=file_type, **keywords)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\OneDrive\py_win\python312\Lib\site-packages\pyexcel_io\io.py", line 86, in get_data
    data, _ = _get_data(
              ^^^^^^^^^^
  File "D:\OneDrive\py_win\python312\Lib\site-packages\pyexcel_io\io.py", line 105, in _get_data
    return load_data(**keywords)
           ^^^^^^^^^^^^^^^^^^^^^
  File "D:\OneDrive\py_win\python312\Lib\site-packages\pyexcel_io\io.py", line 205, in load_data
    result = reader.read_all()
             ^^^^^^^^^^^^^^^^^
  File "D:\OneDrive\py_win\python312\Lib\site-packages\pyexcel_io\reader.py", line 95, in read_all
    content_dict = self.read_sheet_by_index(sheet_index)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\OneDrive\py_win\python312\Lib\site-packages\pyexcel_io\reader.py", line 84, in read_sheet_by_index
    sheet_reader = self.reader.read_sheet(sheet_index)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\OneDrive\py_win\python312\Lib\site-packages\pyexcel_xlsx\xlsxr.py", line 148, in read_sheet
    sheet = SlowSheet(native_sheet, **self.keywords)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\OneDrive\py_win\python312\Lib\site-packages\pyexcel_xlsx\xlsxr.py", line 72, in __init__
    for ranges in sheet.merged_cells.ranges[:]:
                  ~~~~~~~~~~~~~~~~~~~~~~~~~^^^
TypeError: 'set' object is not subscriptable

  • 写回答

4条回答 默认 最新

  • 关注

    cowein 上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    问题分析:根据错误提示信息,TypeError: 'set' object is not subscriptable,意思是向集合类型的对象执行了下标操作。该问题的具体原因是代码中使用了pyexcel库的merge_all_to_a_book函数,该函数的第一个参数应该是一个包含多个文件名的列表对象,而不是一个集合对象。

    解决方案:

    1. 检查代码中文件名的获取部分,确保获取到的文件名是一个列表对象。
    2. 确保pyexcel库的相关插件已经正确安装,可以尝试重新安装这些插件。
    3. 检查文件路径,确保文件存在且路径正确。

    修改后的代码如下:

    def manytoonebypyexcel():
        from pyexcel import cookbook
        import glob
       
        # 使用glob.glob返回文件名列表
        files = glob.glob("*.xlsx")
        cookbook.merge_all_to_a_book(files, 'output.xlsx')
    
    if __name__=='__main__':
        import time
        starttime=time.time()
        manytoonebypyexcel()
        endtime=time.time()
        print(endtime-starttime)
    

    注意:这只是一个简单的修改示例,具体解决方法还需要根据你的代码结构和使用的其他库进行调整。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月14日

悬赏问题

  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响
  • ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
  • ¥15 电脑蓝屏logfilessrtsrttrail问题
  • ¥20 关于wordpress建站遇到的问题!(语言-php)(相关搜索:云服务器)
  • ¥15 【求职】怎么找到一个周围人素质都很高不会欺负他人,并且未来月薪能够达到一万以上(技术岗)的工作?希望可以收到写有具体,可靠,已经实践过了的路径的回答?