我的程序中出现了一个奇怪的错误,我似乎无法在一个简化的例子中复制。我正在尝试将None的值分配给列表中的项目,但由于某种原因它会抛出错误。我不明白这个问题,因为我甚至没有使用元组。
#Execute SQL query returning five columns.
cursor.execute(query)
#Iterate the rows.
for row in cursor:
#Get one row, and copy it to a new list variable.
my_list = row[:5]
#If index 3 is zero, convert it to None.
if (my_list[3] == 0):
print type(my_list[3])
##Prints <type 'int'>
my_list[3] = None
##TypeError: 'tuple' object does not support item assignment
答案 0 :(得分:0)
出于某种原因,MySQLdb将行作为元组而不是列表返回。尽管采用row[:5]
语法,但仍会将其复制到my_list。
print type(my_list)
##Prints <type 'tuple'>
由于元组是不可变的,因此必须先将它们转换为列表,然后才能重新分配单个元素。
my_list = list(row[:5])