解码base64字符串的字典会出错

时间:2019-04-15 13:44:58

标签: python-3.x for-loop base64

我正在尝试像这样解码base64字符串的字典:

responses64 = {
'54sdf61': 'eyJyZXNwb2...', 
'23423vse': 'sdfwerfwewe...'
}

数据是来自API查询的,因此我无法更改该部分。

通常,我会这样做来解码base64:

response = json.loads(base64.b64decode(response64))

但是由于我现在已经对许多这些字符串作出了起诉,所以我走了另一条路。我能想到的最好的办法是对键值进行for循环,这些键值存储在另一个名为IDs的列表中,并将结果写入字典:

responses = {}

for i in IDs:
    responses[i] = json.loads(base64.b64decode(responses64[i]))

但是,这不起作用,因为b64decode不喜欢对字典进行操作:

TypeError: argument should be a bytes-like object or ASCII string, not 'dict'

任何想法将不胜感激...

1 个答案:

答案 0 :(得分:1)

您需要使用json Encoding

因此可以与base64

一起使用
responses[i] = json.loads(base64.b64decode(json.dumps(responses64[i])))

response = json.loads(json.dumps(responses64))