sql >> Base de Datos >  >> NoSQL >> MongoDB

error de pymongo:bson.errors.InvalidBSON:el códec 'utf8' no puede decodificar el byte 0xa1 en la posición 25:byte de inicio no válido

Debe pasar el argumento unicode_decode_error_handler a MongoClient y usar pymongo 3.5.1 al menos.

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)

Parece que 'ignorar' está configurado de manera predeterminada en Python 2.7, pero en Python 3.6.1 debe hacerlo usted mismo. Esto ignorará los errores de Unicode y permitirá que el cursor continúe iterando, pymongo intentará hacer todo lo posible para reconstruir los datos JSON.