繁体   English   中英

NoneType: TypeError: 'tuple' object 不支持项目分配

[英]NoneType: TypeError: 'tuple' object does not support item assignment

我正在阅读带有 openpyxl 的 Excel 文件,并且行被解析为元组对象。 元组中的对象之一可以是 NoneType。 进一步将代码行与其他行进行比较。 最后这些行没有 NoneType,而是一个空字符串 object,这妨碍了比较。 因此,我使用以下代码将 NoneType 替换为空字符串 object。

                for row in previous_worksheet.iter_rows(values_only=True):
                    print("row " + str(type(row)))
                    for x in range(len(list(row))):
                        print(type(row[x]))
                        if row[x] is None:
                            print(row[x])
                            row[x] = ""

运行此代码会给我以下 output:

row <class 'tuple'>
<class 'str'>
<class 'str'>
<class 'str'>
<class 'str'>
<class 'str'>
<class 'str'>
<class 'str'>
<class 'NoneType'>
None
Traceback (most recent call last):
  File "C:\PycharmProjects\SecuniaComparer\secunia_comparer.py", line 187, in <module>
    main()
  File "C:\PycharmProjects\SecuniaComparer\secunia_comparer.py", line 182, in main
    sc.start_parsing()
  File "C:\PycharmProjects\SecuniaComparer\secunia_comparer.py", line 71, in start_parsing
    row[x] = ""
TypeError: 'tuple' object does not support item assignment

object 是 NoneType,但分配空字符串会导致元组 object 出现 TypeError。 我怎样才能解决这个问题?

我的错,创建一个新列表 object 解决了这个问题。

                    temp_row = list(row)
                    for x in range(len(temp_row)):
                        if temp_row[x] is None:
                            temp_row[x] = ("")
                    self.previous_results.append(tuple(temp_row))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM