MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongodb-Einfügung zeigt „Zeichenfolgen in Dokumenten müssen gültiges UTF-8 sein“

Wenn Sie PyMongo und Python 2.x verwenden, sollten Sie str in utf-8- oder Unicode-Strings verwenden. Siehe:http://api.mongodb .org/python/current/tutorial.html#a-note-on-unicode-strings

Wenn data ist ein Diktat mit mehreren Zeichenfolgen, die Sie alle mit der folgenden Funktion in Unicode konvertieren können:

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()

Der vorherige Code konvertiert alle str-Werte in Unicode, die "Schlüssel" bleiben unberührt, je nach Ursache sollten Sie auch die "Schlüssel" konvertieren.