簡體   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