代码之家  ›  专栏  ›  技术社区  ›  Makenna Sophia Herl

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

  •  1
  • Makenna Sophia Herl  · 技术社区  · 6 年前

    我有一个循环,它在用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

    2 回复  |  直到 6 年前
        1
  •  1
  •   Jean-François Fabre    6 年前

    因为你没有创造另一个 message 循环中的实例,因为

    messages.append(message)
    

    你的 messages 列表包含65次对 消息 对象,并带有上次指定给它的值。

    不知道怎么做 消息 我建议您:

    messages.append(copy.deepcopy(message))
    

    但最好的方法是创建一个新的 消息 在您的循环中。

        2
  •  0
  •   TPup    6 年前

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