sql >> データベース >  >> NoSQL >> MongoDB

mongodbの挿入は、「ドキュメント内の文字列は有効なUTF-8である必要がある」ことを示しています

    PyMongoとPython2.xを使用している場合は、utf-8またはUnicode文字列でstrを使用する必要があります。参照: http://api.mongodb .org / python / current / tutorial.html#a-note-on-unicode-strings

    dataの場合 は、次の関数を使用してすべての文字列をUnicodeに変換できる複数の文字列を含むdictです。

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

    前のコードはすべてのstr値をユニコードに変換します。「キー」は変更されません。根本的な原因によっては、「キー」も変換する必要があります。




    1. Meteorのmongoクエリで読み取り設定を指定する方法

    2. 配列に格納されている_idを使用してgolangからmongodbをクエリする

    3. ドキュメントを追加すると、MongoDBカーソルは自動拡張されますか

    4. MongoDB mongorestoreの失敗:locale ::facet ::_S_create_c_locale名が無効です