所以我一直在尝试使用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: string indices must be integers
如何通过在json中打印我想要的内容来解决此问题?
编辑:
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
答案 0 :(得分:2)
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'])
base64.b64decode(str).decode(str)
返回字符串str
。如果该字符串应为json,则可以使用json.loads
将字符串str
转换为dict
,在其中可以通过键获取单个值。