Gehen wir die Fehler durch:
-
Der erste Fehler erscheint einfach, weil Sie ein tatsächliches BSON-Objekt benötigen. Beachten Sie, dass Sie noch nie Daten kodiert haben - Erstellen von
bson.binary.BinaryObjekt bedeutet nicht,BSON.encode()aufzurufen . -
Und hier betrügt Sie PyMongo ein wenig. Die
bson.binary.Binaryist ein zur Laufzeit gepatchtesstroderbytesInstanz (siehe Quelle ). ). Aus diesem Grund erhalten Sie den zweiten Fehler:Was Sie aufrufen, ist eigentlichstr.decode(), nichtBSON.decode(). Alsogotfieldenthält die zufälligen Float-Daten, die Sie ursprünglich gespeichert haben, aber das Objekt selbst hat einige andere Methoden (z. B.repr()) daran gebunden.