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)