Python将字节数组转换为字典

时间:2016-11-09 14:23:24

标签: python-3.x

我想帮助将字节转换为字典,我有;

  

收到消息:b'req:21; num:54771377; INFO :; GATE:N;'

我想要

  

d1 = {'req':21,'num':54771377,'INFO':,'GATE':N}

谢谢

2 个答案:

答案 0 :(得分:1)

将gencomp通过管道传输到字典中(删除空字段)。将字节转换为字符串后,按分号拆分(假设:字节对象内的数据为ASCII)

s = b"req:21;num:54771377;INFO:;GATE:N;"
d = dict(toks.split(":") for toks in s.decode("ascii").split(";") if toks)

print(d)

结果:

{'INFO': '', 'GATE': 'N', 'req': '21', 'num': '54771377'}

备注:

  1. 一个dictcomp会像这个d = {toks.split(":")[0] : toks.split(":")[1] for toks in s.decode("ascii").split(";") if toks}一样诱人,但这意味着你在结肠上分裂两次太多了

  2. 如果你有非ascii数据,你仍然可以完成这项工作,但数据将保持为bytesd = dict(toks.split(b":") for toks in s.split(b";") if toks)

答案 1 :(得分:1)

这样的东西?

{u'INFO': u'', u'GATE': u'N', u'num': u'54771377', u'req': u'21'}

结果:

del df['column_name']

Repl:https://repl.it/X3G/8284

相关问题