なぜpython3でこれが起こりますか?私は以下を実行した場合python 3はmsgpackからdictのキーを見つけられません
meta = msgpack.unpackb(data[1])
print(type(meta))
<class 'dict'>
meta = {b'api_key': b'apikey1',
b'sensor_id': b'sid1',
b'version': b'1.0'}
:
1)私は
3)返されたタイプの下に辞書で取得解凍) のRedisからmsgpackデータを取得します: sensor_meta [ 'sensor_id']
{b'api_key': b'apikey1',
b'sensor_id': b'sid1',
b'version': b'1.0'}
Traceback (most recent call last):
File "/Users//worker.py", line 247, in <module>
print(meta['sensor_id'])
KeyError: 'sensor_id'
が、私はsensor_meta [b'sensor_を使用している場合id ']それは動作します。
「b」とは何ですか?それをどのように取り除くことができますか?オブジェクト全体を変換してbがないようにするにはどうすればよいですか?
ので、私は以下を行う場合:
print(type(meta['sensor_id']))
<class 'bytes'>
なぜバイトとどのようにそれがあったのですか?ハッシュでキーを使用するたびにbを追加しないでください。ノートhereで述べたように
おかげで
'データが[1]'だけでなく – yash
無関係...データが[1]私は解凍したいデータが – Tampa
記載されているが、私は正式に定義するためにあなたが行うデータの種類メタ – Tampa