は、私たちは、次の例を持ってみましょう:関数にキーワード引数のキーとしてバイトを渡すにはどうすればよいですか?
def fun(**args):
print(str(args))
dic = {'name': 'Pulkit'}
fun(**dic)
このコードは正常に動作し、私は次の出力を持っている:
{'name': 'Pulkit'}
は今バイトとして値を渡すことができます:
dic_vb = {'name': b'Pulkit'}
fun(**dic_vb)
このまた、正常に動作し、次の出力を持っています:
{'name': b'Pulkit'}
しかし、私はバイトとして鍵を持ってしようとすると、物事は変わる:
TypeError: fun() keywords must be strings
たちはキーワード引数としてバイトを渡すことができますどのような方法があります:
dic_kb = {b'name': 'Pulkit'}
これは言ってはTypeErrorになります。私もキーワード引数を扱うrepoのCPythonコードを調べましたが、私たちが渡すことはできないようです。回避策がありますか、またはユニコードが渡されていることを確認する必要がありますか?
私はPython 2でこのようなインスタンスがたくさんあるので、Python 3に移植する必要があるコードベースを扱っています。すべてのキーワード引数をユニコードに変換するしか方法はありませんか?