MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Pymongo-Fehler:bson.errors.InvalidBSON:'utf8'-Codec kann Byte 0xa1 in Position 25 nicht decodieren:ungültiges Startbyte

Sie müssen das Argument unicode_decode_error_handler an MongoClient übergeben und mindestens pymongo 3.5.1 verwenden.

import pymongo
import json
from pymongo import MongoClient

if __name__ == '__main__':

    client = MongoClient(
        host="whatever_your_host_is",
        maxPoolSize=50,
        unicode_decode_error_handler='ignore'
    )


    my_db=client['my_db']
    collection=my_db['my_collection']

    cursor = collection.find({"whatever": "some_stuff"})

    for document in cursor:
          print(document)

Sieht so aus, als ob „Ignorieren“ in Python 2.7 standardmäßig eingestellt ist, aber in Python 3.6.1 müssen Sie es selbst tun. Dies ignoriert die Unicode-Fehler und lässt den Cursor weiter iterieren, pymongo wird versuchen, sein Bestes zu geben, um die JSON-Daten zu rekonstruieren.