Przejdźmy przez błędy:
-
Pierwszy błąd pojawia się po prostu dlatego, że potrzebujesz rzeczywistego obiektu BSON. Zauważ, że nigdy nie zakodowałeś żadnych danych - tworząc
bson.binary.Binary
obiekt nie oznacza wywołaniaBSON.encode()
. -
I tutaj PyMongo trochę cię oszukuje.
bson.binary.Binary
jest poprawionym w czasie wykonywaniastr
lubbytes
instancja (patrz źródło ). Dlatego pojawia się drugi błąd:to, co wywołujesz, to w rzeczywistościstr.decode()
, a nieBSON.decode()
. A więcgotfield
zawiera losowe dane zmiennoprzecinkowe, które początkowo zapisałeś, ale sam obiekt ma kilka różnych metod (np.repr()
) jest z nim związany.