python-3.x - 将 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 中,您可以使用子字符串来完成您想要的操作。如果前缀的长度是恒定的,那么您需要做的就是使用具有恒定索引的切片,
在您的示例中,您似乎有一个 accessToken 键,并且该键内部是另一个字典,其中包含一个可以在条目之间更改的键。假设您想要 accessToken 中 e 之后的审查部分,您可以使用以下命令访问它:
bearerToken = r['accessToken'][accessToken][1:]
这将为您提供访问令牌“******************”,这是从索引 1 开始的所有内容。如果你只想要整个字符串,你可以省略 [1:] 部分。
推荐阅读
- python - IBM I 系列/AS400 上的 Python
- java - 尝试生成 PDF 时 thymeleaf TempletEngine 处理出错
- php - 在列和行标题重叠时基于数据库信息创建 HTML 表格内容
- c# - 当我尝试格式化 10/24/2018 12:00:00 AM 时,格式化日期时间返回 24-10-2018T00:00:00
- ios - VNRectangleObservation - 提供观察边界框的四个坐标 - 基于哪个参考?
- twitter-bootstrap - 如何将图标移动到此社交按钮的中心?
- kotlin - Kotlin:带有公共设置器的受保护变量
- youtube-api - 在 youtube embed 上循环播放视频时如何隐藏播放列表
- android - Android NDK GCC 似乎很响——它应该是这样吗?
- excel - 如何将此 vba 代码调整为仅从第一个工作表复制