我在 Python 方面相对较新,因此在基础方面面临困难。我有以下代码在循环内打印正确的列表值,但在循环外它只显示最后一个值:
for item in statusEntries:
theNameStatus = item[3] #get the numStatus field data
if theNameStatus == 1:
numStatus1 = item[2] #get cntStatus
elif theNameStatus == 2:
if numStatus1 > 0:
theNameStatus = "closed"
sctStatus["nameStatus"] = theNameStatus
sctStatus["IDstatus"] = item[0]
sctStatus["cntStatus"] = item[2]
#Appending Status Array with Status Attribute Object
sctResponse["STATUSOPTION"].append(sctStatus)
当我在循环中打印sctResponse["STATUSOPTION"]时,它会在每次迭代中显示正确的值,但是当它到达最后一次迭代时,它只会用最后一个循环值填充它:
{'STATUSOPTION': [{'nameStatus': 1, 'cntStatus': 0, 'IDstatus': 6}]}
{'STATUSOPTION': [{'nameStatus': 2, 'cntStatus': 0, 'IDstatus': 1}, {'nameStatus': 2, 'cntStatus': 0, 'IDstatus': 1}]}
{'STATUSOPTION': [{'nameStatus': 3, 'cntStatus': 0, 'IDstatus': 7}, {'nameStatus': 3, 'cntStatus': 0, 'IDstatus': 7}, {'nameStatus': 3, 'cntStatus': 0, 'IDstatus': 7}]}
{'STATUSOPTION': [{'nameStatus': 4, 'cntStatus': 0, 'IDstatus': 4}, {'nameStatus': 4, 'cntStatus': 0, 'IDstatus': 4}, {'nameStatus': 4, 'cntStatus': 0, 'IDstatus': 4}, {'nameStatus': 4, 'cntStatus': 0, 'IDstatus': 4}]}
{'STATUSOPTION': [{'nameStatus': 5, 'cntStatus': 0, 'IDstatus': 5}, {'nameStatus': 5, 'cntStatus': 0, 'IDstatus': 5}, {'nameStatus' : 5, 'cntStatus': 0, 'IDstatus': 5}, {'nameStatus': 5, 'cntStatus': 0, 'IDstatus': 5}, {'nameStatus': 5, 'cntStatus': 0, ' ID状态':5}]}
正如您所看到的最后一条粗体记录,所有值都已清除,并用最后一条记录填充。为什么会这样?Append 应该追加而不是清除它,不是吗?