sql >> Database >  >> NoSQL >> MongoDB

mongodb-invoeging toont 'strings in documenten moeten geldige UTF-8 zijn'

Als u PyMongo en Python 2.x gebruikt, moet u str gebruiken in utf-8- of unicode-tekenreeksen. Zie:http://api.mongodb .org/python/current/tutorial.html#a-note-on-unicode-strings

Als data is een dictaat met meerdere strings, je kunt ze allemaal converteren naar unicode met de volgende functie:

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

Vorige code converteert alle str-waarden in unicode, de "sleutels" blijven onaangeroerd, afhankelijk van de hoofdoorzaak moet u ook de "sleutels" converteren.




  1. Mongodb Java-query voor datumbereik

  2. Verbinding maken met RedisToGo via Node.JS

  3. Waarom werkt MongoDB Class niet in Laravel?

  4. Index van item in array ophalen in MongoDB