仅附加最终计数值的计数迭代器

2024-06-16 15:06:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个循环,在用BeautifulSoup解析的xml文件中分配字符串

count = 0
for i in oosASINS:

 sku = str(i)
 message.sku.string = sku
 message.quantity.string = "0"
 stringnum = str(count)
 message.messageid.string = stringnum    
 messages.append(message)
 count +=1

它应该创建一个文档,其中分配给每个新消息集的消息id被一个(0,1,2…等)迭代,但是它只附加1-最终计数值,所以我得到的是(65,65,65…),其中最终计数值是66

我对此感到困惑,因为直到前一个count变量被指定为messageid之后,计数才增加,但是它总是设法输出65


Tags: 文件字符串in消息messageforstringcount
2条回答

因为

messages.append(message)

您的messages列表包含65次对message对象的相同引用,其中包含您最后分配给它的值

如果不知道message是如何创建的,我可以建议您:

messages.append(copy.deepcopy(message))

但是最好的方法是在循环中创建一个新的message

看起来您需要在循环中创建一个新的消息实例

相关问题 更多 >