pymongo.errors.DuplicateKeyError: E11000 duplicate key error collection: anjuke.ershoufang index

今天在爬水滴筹数据的时候写入mongodb的时候遇见了这个情况,内容如下:

for item in dict_infor["data"]:
                    if self.judge_patient(name, **item):
                        my_infor["project_id"] = project_id
                        my_infor["name"] = name
                        my_infor["shuidi_infor"] = item
                        conn["admin"].shuidi_rasing.insert(my_infor)
                        with open("result.txt", "a+") as f:
                            f.write(str(project_id)+"\t"+name+"\n")

写入一条之后一直报错,说的是id主键冲突,找了半天终于解决了,只需要在写入的内容上加一个copy()即可。

代码改成如下:

for item in dict_infor["data"]:
                    if self.judge_patient(name, **item):
                        my_infor["project_id"] = project_id
                        my_infor["name"] = name
                        my_infor["shuidi_infor"] = item
                        conn["admin"].shuidi_rasing.insert(my_infor.copy())
                        with open("result.txt", "a+") as f:
                            f.write(str(project_id)+"\t"+name+"\n")

另外附上原文链接。希望能对遇见这个问题的同学有帮助。

https://stackoverflow.com/questions/17529216/mongodb-insert-raises-duplicate-key-error

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值