0

本当にここから抜け出すことはできません...これが私の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と、リストの全長にわたって繰り返し追加した最後の要素のみが含まれます。私に役立つアドバイスはありますか!ありがとうございました。

4

2 に答える 2

3

ループで変更可能なオブジェクトを再利用します。

store['Store']

代わりに、ループ内に新しいコピーを作成します。

newstore = store.copy()
newstore['Store'] = { ... }
于 2013-10-29T14:38:15.737 に答える
0
store["Store"]={ ... }

この行が 1 つのキーだけで新しい辞書を作成することを期待している場合、実際に必要なのは

store = {"Store": { ... }}
于 2013-10-29T14:43:13.667 に答える