sql >> Databasteknik >  >> NoSQL >> MongoDB

pymongo fel:bson.errors.InvalidBSON:'utf8' codec kan inte avkoda byte 0xa1 i position 25:ogiltig startbyte

Du måste skicka argumentet unicode_decode_error_handler till MongoClient och åtminstone använda 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)

Det ser ut som att "ignorera" är inställt som standard på Python 2.7, men i Python 3.6.1 måste du göra det själv. Detta kommer att ignorera Unicode-felen och låta markören fortsätta att iterera, pymongo kommer att försöka göra sitt bästa för att rekonstruera JSON-data.



  1. MongoDB $split

  2. Hur kan jag använda "Not Like"-operatorn i MongoDB

  3. Hur ändrar jag mitt mongoDB-användarlösenord som icke-administratör?

  4. Kan jag avgöra om en sträng är ett MongoDB ObjectID?