试图从解码的base64-Python打印json

试图从解码的base64-Python打印json,python,json,base64,Python,Json,Base64,所以我一直在尝试使用base64来解码一个值,然后能够使用这些解码的字符串自己打印出来 基本上,我的解码base64是: { "trailerColor": "FF0017", "complete": 59, "bounds": [ 25, 65, 62, 5 ], "Stamina": 0, "cardId": "d4fc5458-3481-4ce6-be32-acd03c2cfd16", } 我使用这段代码,它获取我想要的元数据,然后

所以我一直在尝试使用base64来解码一个值,然后能够使用这些解码的字符串自己打印出来

基本上,我的解码base64是:

{
  "trailerColor": "FF0017",
  "complete": 59,
  "bounds": [
    25,
    65,
    62,
    5
  ],
  "Stamina": 0,
  "cardId": "d4fc5458-3481-4ce6-be32-acd03c2cfd16",
}
我使用这段代码,它获取我想要的元数据,然后用下面的代码将其转换成UTF-8

   resp = requests.get(url, headers=headers, json=json, timeout=6)

    getmetadata = resp.json()['objects'][1]['metadata']
    newdata = base64.b64decode(getmetadata).decode('UTF-8')

    print(newdata)
然而,通常如果我这样做了
newdata['trailerColor']
它应该只能打印出trailerColor,但我得到的错误是:

TypeError:字符串索引必须是整数

我如何通过json打印出我想要的内容来解决这个问题

编辑:


base64.b64解码(str).解码(str)
返回字符串
str
。如果字符串应该是json,那么您可以使用
json.loads
将字符串
str
转换为
dict
,您可以通过它的键获取单个值。

请包含完整的错误消息。我刚刚添加了它@DYZnew data是一个字符串,您正在作为字典访问它,你必须先把它转换成字典哦!好了!这就是解决办法!谢谢!:)
Process Process-1:
Traceback (most recent call last):
  File "C:\Users\AppData\Local\Programs\Python\Python36\lib\multiprocessing\process.py", line 249, in _bootstrap
    self.run()
  File "C:\Users\AppData\Local\Programs\Python\Python36\lib\multiprocessing\process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\TEST.py", line 194, in script
    print(newdata['complete'])
TypeError: string indices must be integers
resp = requests.get(url, headers=headers, json=json, timeout=6)

getmetadata = resp.json()['objects'][1]['metadata']
newdata = base64.b64decode(getmetadata).decode('UTF-8')
data = json.loads(newdata)
print(data['complete'])