sql >> Databáze >  >> NoSQL >> MongoDB

vložení mongodb ukazuje „řetězce v dokumentech musí být platné UTF-8“

Pokud používáte PyMongo a Python 2.x, měli byste použít str v řetězcích utf-8 nebo unicode. Viz:http://api.mongodb .org/python/current/tutorial.html#a-note-on-unicode-strings

Pokud data je diktát s více řetězci, všechny je můžete převést na unicode pomocí následující funkce:

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

Předchozí kód převede všechny hodnoty str do unicode, "klíče" zůstanou nedotčené, v závislosti na příčině byste měli převést také "klíče".




  1. Existuje dobrý způsob, jak podpořit členy pop z Redis Sorted Set?

  2. MongoDB najít porovnání dotazu s CurrentDate

  3. 4 způsoby, jak odstranit dokument v MongoDB

  4. Sdílejte relace mezi php a uzlem