2017-05-16 13 views
-3

与えられたキー:値(name = "My name is Bill")、Python 3では、キーをエンコードしようとしています(それは名前です)。 name.encodeなどの標準的なアプローチでは、コンテンツのエンコードが終了します。次のステップとしてバイトにエンコードする必要がありますキー値の文字列の値を与えられた場合、コンテンツではなくキーをエンコードする方法

+1

可変名をエンコードしようとしているようですね。まず第一に、なぜですか?次に、変数名をエンコードすると、別の変数名で終了するだけです。既存の変数名は変更しません。あなたはキーの変更について話しますが、キーは変数名ではなく、定義によって不変です。 – cdarke

+0

この変数(キー)は値を保持し、これはテンソルに入ります。テンソルの構造体は、同じ名前を持つキーと値を使用します。今、キーはバイトにエンコードされなければなりません。そうでなければ、非互換性の問題があります。 – emeralddove

答えて

2
#!/usr/bin/python 
import codecs 

def encoder(obj, scheme, orig_scheme): 
    # A function which will perform encoding and return encoded object 
    temp_obj = {} 
    for k in obj: 
     new_key = codecs.encode(bytes(k, orig_scheme), scheme).strip().decode(orig_scheme) 
     temp_obj[new_key] = obj[k] 
    return temp_obj 

dict_usr_obj = { 
    "name": "Usr X", 
    "age": 23, 
    "gender": "Male" 
} 
encoded_obj = encoder(dict_usr_obj, "base64", "utf-8") 
print (encoded_obj) 
関連する問題