Python从二进制到字典

时间:2018-10-02 21:03:01

标签: python json dictionary utf-8

在我的项目中,我有一个像这样的二进制文件:

data1 = b'"[5, \\"WEB99\\", \\"Test\\", true, \\"2018-08-12\\"]"'

我会提取一些信息(不带\),例如date1 [0]-> 5或data1 [4]->“ 2018-08-12”

为此,我尝试使用json将我的二进制文件转换为dict:

data1 = data1.decode('utf-8')

然后

d1 = json.dumps(data1, default='utf-8')

但结果是一团糟:

  

'“ \” [5,\\\“ WEB99 \\\”,\\\“ Test \\\”,true,\\\“ 2018-08-12 \\”“] \”“'

我如何以pythonic方式将二进制数据转换为用于提取值的格式?

预先感谢

2 个答案:

答案 0 :(得分:2)

您可以先这样做:

data1 = data1.decode('utf-8')

然后

a = json.loads(json.loads(data1,encoding='utf-8'))
  

[5,'WEB99','Test',True,'2018-08-12']

此时,您有了一个列表,可以根据需要提取值:

a[3]

答案 1 :(得分:1)

您应该使用loads而不是dumps。但是,就您而言,我使用了loads 2次。

data1 = b'"[5, \\"WEB99\\", \\"Test\\", true, \\"2018-08-12\\"]"'
your_list = json.loads(json.loads(data1.decode('utf-8')))