首页 > 解决方案 > 将 dict 值的特定部分存储到字符串中

问题描述

import requests
import json

url = "********"

payload = json.dumps({
"username": "*****",
"password": "*****"
})
headers = {
'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)


#*** Convert response into a dictionary ***
r = json.loads(response.text)

# *** print the value of they key 'accessToken'
bearerToken = r['accessToken']
print(bearerToken)

输出

{'accessToken': 'e************************************', 'tokenType': 'Bearer'}

我想达到什么目的?

仅获取“accessToken”之后的审查代码并将新的访问令牌存储在字符串中以在 HTTP 请求中使用它。

注意:“accessToken”是另一个名为 accessToken 的键的值。因此,打印键值的传统方法已经在上面显示的输出中使用。

完整的输出:

{
  "accessToken" : {
    "accessToken" : "e******************",
    "tokenType" : "Bearer"
  },
  "refreshToken" : {
    "id" : "6*************",
    "lastAccessedTime" : 1***********,
    "refreshToken" : "e*************"
  }
}

标签: python-3.xdictionarybearer-token

解决方案


在 Python 中,您可以使用子字符串来完成您想要的操作。如果前缀的长度是恒定的,那么您需要做的就是使用具有恒定索引的切片,

在您的示例中,您似乎有一个 accessToken 键,并且该键内部是另一个字典,其中包含一个可以在条目之间更改的键。假设您想要 accessToken 中 e 之后的审查部分,您可以使用以下命令访问它:

bearerToken = r['accessToken'][accessToken][1:]

这将为您提供访问令牌“******************”,这是从索引 1 开始的所有内容。如果你只想要整个字符串,你可以省略 [1:] 部分。


推荐阅读