MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Wstawienie mongodb pokazuje "ciągi w dokumentach muszą być poprawne UTF-8"

Jeśli używasz PyMongo i Pythona 2.x, powinieneś użyć str w utf-8 lub ciągach Unicode. Zobacz:http://api.mongodb .org/python/current/tutorial.html#a-note-on-unicode-strings

Jeśli data jest dyktatem z wieloma ciągami, które możesz przekonwertować na Unicode za pomocą następującej funkcji:

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

Poprzedni kod skonwertuje wszystkie wartości str na Unicode, "klucze" pozostaną nietknięte, w zależności od przyczyny, powinieneś również przekonwertować "klucze".




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDb:jak stworzyć właściwy (złożony) indeks dla danych z wieloma polami do przeszukiwania

  2. Dostępne połączenia MongoDB

  3. MongoDB i złożone klucze podstawowe

  4. Zapytanie MongoDB do aktualizacji zagnieżdżonej tablicy

  5. zapytanie mongodb:$size z $gt zwraca zawsze 0