sql >> Databasteknik >  >> NoSQL >> MongoDB

mongodb-insättning visar "strängar i dokument måste vara giltiga UTF-8"

Om du använder PyMongo och Python 2.x bör du använda str i utf-8 eller unicode-strängar. Se:http://api.mongodb .org/python/current/tutorial.html#a-note-on-unicode-strings

Om data är ett diktat med flera strängar som du kan konvertera alla till unicode med hjälp av följande 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()

Tidigare kod kommer att konvertera alla str-värden i unicode, "nycklarna" förblir orörda, beroende på grundorsaken bör du också konvertera "nycklarna".




  1. return Model.create(arr).exec() fungerar inte i mongoose

  2. Kapslade $addFields i MongoDB

  3. MongoDb:hitta djupt kapslade objekt med $lookup

  4. Mongo-fel på I control hotfix