pymongo - TypeError: документ должен быть экземпляром dict, bson.son.SON или другого типа, который наследуется от коллекций.

Я пишу данные в MongoDB с помощью pymongo,

Я получаю эту ошибку при выполнении операции записи.

TypeError: document must be an instance of dict, bson.son.SON, or other type  that inherits from collections.MutableMapping

Если я распечатаю данные и скопирую их insert_one() звоните, информация пишется с оболочкой. Я попытался преобразовать переменную в str, но я не уверен, как она отформатирована неправильно, как будто я копирую строку печати и выполняю операцию, она добавлена. Это приводит меня к подозрению, что не было проблемы с форматом объекта JSON, но это кодировка или какой-то ее вариант, или небольшой синтаксис возвращаемого объекта JSON.

post_id = post_db.insert_one(chunk).inserted_id

2 ответа

У меня была та же ошибка, так как я передавал кортеж insert_one() функция. Дважды проверьте тип данных, который вы передаете в эту функцию, так как ошибка явно говорит о том, что некоторые типы данных приняты для передачи в эту функцию.

type(chunk) будет полезно для вас.

У меня была та же ошибка TypeError, когда я использовал.insert_one(), чтобы вставить много объектов одновременно. Используйте массовую вставку (.insert_many()), как рекомендовано в руководстве по адресу: http://api.mongodb.org/python/current/tutorial.html.

Другие вопросы по тегам