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

mongodb-indsættelse viser 'strenge i dokumenter skal være gyldige UTF-8'

Hvis du bruger PyMongo og Python 2.x, bør du bruge str i utf-8 eller unicode-strenge. Se:http://api.mongodb .org/python/current/tutorial.html#a-note-on-unicode-strings

Hvis data er en diktat med flere strenge, du kan konvertere dem alle til unicode ved hjælp af følgende funktion:

def convert2unicode(mydict):
    for k, v in mydict.iteritems():
        if isinstance(v, str):
            mydict[k] = unicode(v, errors = 'replace')
        elif isinstance(v, dict):
            convert2unicode(v)

for code, data in dict_data.items(): 
    try:
        convert2unicode(data)
        collection2.insert({'_id':code,'data': data})
    except Exception as e:
        print code,'>>>>>>>', str(e)
        sys.exit()

Tidligere kode vil konvertere alle str-værdier i unicode, "tasterne" forbliver urørte, afhængigt af årsagen bør du også konvertere "nøglerne".




  1. MongoDB:Er det muligt at begrænse resultaterne af $lookup til bestemte felter (som en projektion)?

  2. Gradle-afhængigheder virker ikke i IntelliJ

  3. Ionic2 + Meteor:få _id for nyt indsat element

  4. Hvordan får jeg adgang til indlejrede json-objekter i en Pandas DataFrame?