2016-04-20 2 views
1
client = MongoClient(conn) 
db = client.get_default_database() 

json_file = {'test_1':1, 'test_2':2} 
db.insert_one(json_file) 

генерирует:Проблема экспорта JSON в Монго с PyMongo

TypeError: 'Collection' object is not callable. If you meant to call the 'insert_many' method on a 'Database' object it is failing because no such method exists. 

Проверка моей версии PyMongo:

$ pip freeze | grep pymongo 
$ pymongo==3.2.2 

который я думаю, означает, что insert_one и insert_many методы должны быть доступны (пост pymongo 3.0, правильно?). Более смутно, когда я звоню dir(db) Я не вижу никаких ссылок на какие-либо методы insert.

Что мне не хватает?

+0

Сложно отлаживать сообщение об ошибке в цикле: * ** Объект «Коллекция» ** не может быть вызван. Если вы хотите вызвать метод «insert_many» в ** «База данных» ** «объект» *. Добро пожаловать в 'pymongo'. В следующий раз, дайте документации (и ошибки messsges) немного больше, чем просто взгляд. –

ответ

2

Это потому, что db относится к вашей базе данных, вам необходимо получить доступ к collection object с точечной нотации:

db.col.insert_one(json_file) 

или в словаре подобный стиль:

db["col"].insert_one(json_file) 

где col это имя вашей коллекции.

+0

ах, да, это было очевидно. Спасибо, парни. – Aaron