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

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

erzeugt:Ärger Export JSON Mongo mit 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. 

Überprüfung meiner Version von pymongo:

$ pip freeze | grep pymongo 
$ pymongo==3.2.2 

Was ich denke, bedeutet, dass die insert_one und insert_many Methoden zur Verfügung stehen soll (post pymongo 3.0, richtig?). Mehr verwirrend, wenn ich dir(db) rufe, sehe ich keine Verweise auf irgendwelche insert Methoden überhaupt.

Was fehlt mir?

+0

Es ist so schwer eine cyprtische Fehlermeldung zu debuggen * "** 'Collection' ** Objekt ist nicht aufrufbar. Wenn Sie die 'insert_many' Methode auf einem ** 'Database' ** Objekt" * "aufrufen möchten. Willkommen bei 'Pymongo'. Das nächste Mal, geben Sie die Dokumentation (und die Fehler messgesges) ein wenig mehr als nur einen Blick. –

Antwort

2

Das ist, weil db auf Ihre Datenbank verweist, müssen Sie ein collection object mit einer Punktnotation zuzugreifen:

db.col.insert_one(json_file) 

oder in einem Wörterbuch-Stil:

db["col"].insert_one(json_file) 

wo col sind der Name Ihrer Sammlung.

+0

Ah, ja, das war offensichtlich. danke Leute. – Aaron