Mari kita lihat kesalahannya:
-
Kesalahan pertama muncul hanya karena Anda membutuhkan objek BSON yang sebenarnya. Perhatikan, bahwa Anda belum pernah menyandikan data apa pun - membuat
bson.binary.Binary
objek tidak berarti memanggilBSON.encode()
. -
Dan di situlah PyMongo menipu Anda sedikit.
bson.binary.Binary
adalahstr
yang ditambal-runtime ataubytes
contoh (lihat sumber ). Itulah mengapa Anda mendapatkan kesalahan kedua:apa yang Anda panggil sebenarnya adalahstr.decode()
, bukanBSON.decode()
. Jadi,gotfield
berisi data float acak yang Anda simpan pada awalnya, tetapi objek itu sendiri memiliki beberapa metode berbeda (mis.repr()
) terikat padanya.