Нека да прегледаме грешките:
-
Първата грешка се появява просто защото имате нужда от действителен BSON обект. Имайте предвид, че никога не сте кодирали данни - създавайки
bson.binary.Binaryобект не означава извикване наBSON.encode(). -
И това е мястото, където PyMongo ви мами малко.
bson.binary.Binaryеstrс корекция по време на изпълнение илиbytesекземпляр (вижте източника ). Ето защо получавате втората грешка:това, което наричате, всъщност еstr.decode(), а неBSON.decode(). И така,gotfieldсъдържа произволните плаващи данни, които сте съхранили първоначално, но самият обект има някои различни методи (напр.repr()), свързан с него.