MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

errore pymongo:bson.errors.InvalidBSON:il codec 'utf8' non può decodificare il byte 0xa1 in posizione 25:byte di inizio non valido

Devi passare l'argomento unicode_decode_error_handler a MongoClient e usare almeno 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)

Sembra che 'ignora' sia impostato di default su Python 2.7, ma in Python 3.6.1 devi farlo da solo. Questo ignorerà gli errori Unicode e consentirà al cursore di continuare a scorrere, pymongo cercherà di fare del suo meglio per ricostruire i dati JSON.