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.Binary
Objekt bedeutet nicht,BSON.encode()
aufzurufen . -
Und hier betrügt Sie PyMongo ein wenig. Die
bson.binary.Binary
ist ein zur Laufzeit gepatchtesstr
oderbytes
Instanz (siehe Quelle ). ). Aus diesem Grund erhalten Sie den zweiten Fehler:Was Sie aufrufen, ist eigentlichstr.decode()
, nichtBSON.decode()
. Alsogotfield
enthä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.