真的无法摆脱这个...... 这是我的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
它只包含我为列表的整个长度重复添加的最后一个元素。
你有什么建议来帮助我!
谢谢。
答案 0 :(得分:3)
您在循环中重用了一个可变对象:
store['Store']
在循环中创建一个新副本:
newstore = store.copy()
newstore['Store'] = { ... }
答案 1 :(得分:0)
store["Store"]={ ... }
如果您希望此行仅使用一个键创建新词典,那么您实际需要的是
store = {"Store": { ... }}