Passons en revue les erreurs :
-
La première erreur apparaît simplement parce que vous avez besoin d'un objet BSON réel. Notez que vous n'avez jamais encodé de données - en créant
bson.binary.Binaryobjet ne signifie pas invoquerBSON.encode(). -
Et c'est là que PyMongo vous trompe un peu. Le
bson.binary.Binaryest unstrcorrigé à l'exécution oubytesinstance (voir source ). C'est pourquoi vous obtenez la deuxième erreur :ce que vous appelez est en faitstr.decode(), pasBSON.decode(). Donc,gotfieldcontient les données flottantes aléatoires que vous avez initialement stockées, mais l'objet lui-même a des méthodes différentes (par exemple,repr()) qui lui est lié.