問題:使用mongo存儲數據的時候,出現錯誤————DuplicateKeyError: E11000 duplicate key error collection

    for i in all_data:
        down_list = []
        now_time = utility.get_this_time()
        for one_data in i:
            on_list = []
            new_list = async_real_time_data(one_data)
            for i in new_list:
                # 統一修改時間  或者  統一添加新時間
                i.update(update_time=now_time)
            on_list += new_list
        print on_list

        down_list += on_list
    print down_list

    mongo_manager.insert_many("temperature_predict_data", down_list)

提示內容是這樣的:(使用的是python2)

DuplicateKeyError: E11000 duplicate key error collection:........index: _id_ dup key: { : ObjectId('5a425e8187ea64b6c051567a') }

百度後,發現有的人是因爲for循環之類的錯誤,(我的問題是在兩次for循環中都在外面執行了list +=)

修改後的代碼是這樣:(把for循環中要添加的數據統一到最裏面的for循環中添加,就解決了這個問題)

down_list = []
    for i in all_data:
        now_time = utility.get_this_time()
        for one_data in i:
            new_list = async_real_time_data(one_data)
            for i in new_list:
                # 統一修改時間  或者  統一添加新時間
         
                i["update_time"] = now_time
                down_list.append(i)
    mongo_manager.insert_many("temperature_predict_data", down_list)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章