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

l'inserimento di mongodb mostra "le stringhe nei documenti devono essere UTF-8 valide"

Se stai usando PyMongo e Python 2.x, dovresti usare str nelle stringhe utf-8 o unicode. Vedi:http://api.mongodb .org/python/current/tutorial.html#a-note-on-unicode-strings

Se data è un dict con più stringhe puoi convertirle tutte in unicode usando la seguente funzione:

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

Il codice precedente convertirà tutti i valori str in unicode, le "chiavi" rimangono intatte, a seconda della causa principale dovresti anche convertire le "chiavi".