gpt4 book ai didi

python - Pymongo insert_many BulkWriteError

转载 作者:可可西里 更新时间:2023-11-01 10:42:07 24 4
gpt4 key购买 nike

我正在尝试将以下名为 posts 的字典列表插入到 mongo 中,但出现了一个 BulkWriteError: batch op errors occurred 错误,我不知道该怎么做修复。

帖子:

[{'#AUTHID': 'fffafe151f07a30a0ede2038a897b680',
'Records': [
{'DATE': '07/22/09 05:54 PM',
'STATUS': 'Is flying back friday night in time to move the rest of his stuff then go to work the next morning... great.'},
......

{'DATE': '07/19/09 04:39 PM', 'STATUS': 'is stealing his net by the lake'}]},

{'#AUTHID': 'fffafe151f07a30a0ede2038a897b680',
'Records': [
{'DATE': '07/22/09 05:54 PM',
'STATUS': 'Is flying back friday night in time to move the rest of his stuff then go to work the next morning... great.'},
{'DATE': '07/19/09 04:39 PM', 'STATUS': 'is stealing his net by the lake'},
....

我使用的代码:

collection = db.posts
collection.insert_many(p for p in posts )

但随后我得到一个错误,提示 BulkWriteError: batch op errors occurred 并且只设法导入第一个字典(对应于第一个 #AUTHID)

我找到了一个描述类似情况的链接,但它没有详细解释为什么会发生这种情况或如何解决此问题。它位于 _Why does PyMongo add an id field to all my documents? 下面的链接中:
https://github.com/mongodb/mongo-python-driver/blob/master/doc/faq.rst#id25

最佳答案

在这里回答还不晚,你快到了。我不确定 FAQ 是否已更新,但请正确阅读:

when calling insert_many() with a list of references to a single document raises BulkWriteError

请注意,它说的是单个,或者换句话说,同一实例。常见问题解答中的示例显示了如何使用同一实例产生错误。您可以通过使用id() 显示内存地址来检查它是否相同。其实我看你们的文件内容是一样的。很可能(但不一定)是同一个实例。

print id(posts[0])
print id(posts[1])

如果任何字典具有相同的实例,那么在准备 posts 变量时就会出现错误。只需确保所有列表项都应具有不同的实例,因为您要插入(许多)不同的文档!

关于python - Pymongo insert_many BulkWriteError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38361916/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com