充满相同值的Python dict

2024-04-23 11:22:21 发布

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

真的无法摆脱。。。 下面是我的python代码:

 for i in range(len(realjson)) : 
    store["Store"]={
          "id"          :realjson[i]['id'].strip(),
          "retailer_id" :RETAILER_ID,
          "name"        :find(realjson[i]["title"],">","<").strip(),
          "address"     :realjson[i]["address"].strip(),
          "city"        :realjson[i]["address"].split(",")[-4].strip(),
          "province"    :realjson[i]["address"].split(",")[-3].strip(),
          "group"       :realjson[i]["address"].split(",")[-1].strip(),
          "zip"         :realjson[i]["address"].split(",")[-2].strip(),
          "url"         :"http://blabla.com?id="+realjson[i]["id"].strip(),
          "lat"         :realjson[i]["lat"].strip(),
          "lng"         :realjson[i]["lon"].strip(),
          "phone"       :realjson[i]["telephone_number"].replace("<br />Phone Number: ","").strip()
          }

    stores.append(store)
    print stores[i]

当我在for循环中打印列表时,它工作正常。 否则,在循环外打印数组时,如下所示: print stores它只包含我在整个列表中重复添加的最后一个元素。 你有什么建议帮我吗! 非常感谢。你知道吗


Tags: store代码inid列表forlenaddress
2条回答
store["Store"]={ ... }

如果您希望此行仅用一个键创建新字典,那么您实际需要的是

store = {"Store": { ... }}

在循环中重用可变对象:

store['Store']

改为在循环中创建新副本:

newstore = store.copy()
newstore['Store'] = { ... }

相关问题 更多 >