Esaminiamo gli errori:
-
Il primo errore viene visualizzato semplicemente perché è necessario un oggetto BSON effettivo. Nota che non hai mai codificato alcun dato, creando
bson.binary.Binary
oggetto non significa invocareBSON.encode()
. -
Ed è qui che PyMongo ti inganna un po'. Il
bson.binary.Binary
è unstr
con patch di runtime obytes
istanza (vedi sorgente ). Ecco perché ottieni il secondo errore:quello che chiami è in realtàstr.decode()
, nonBSON.decode()
. Quindi,gotfield
contiene i dati float casuali che hai memorizzato inizialmente, ma l'oggetto stesso ha alcuni metodi diversi (ad es.repr()
) ad esso vincolato.