MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

erreur pymongo :bson.errors.InvalidBSON :le codec 'utf8' ne peut pas décoder l'octet 0xa1 en position 25 :octet de début invalide

Vous devez transmettre l'argument unicode_decode_error_handler à MongoClient et utiliser au moins pymongo 3.5.1.

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)

On dirait que 'ignore' est défini par défaut sur Python 2.7, mais dans Python 3.6.1, vous devez le faire vous-même. Cela ignorera les erreurs Unicode et laissera le curseur continuer à itérer, pymongo essaiera de faire de son mieux pour reconstruire les données JSON.