python - 我收到 python 错误 - AttributeError: 'str' object has no attribute 'items'
问题描述
在这里需要一些帮助。我正在尝试在我的请求中发送带有标头的 JWT 令牌。当我直接将令牌复制粘贴到请求中时(第 6 行),它工作正常。当我连接为字符串并发送(第 3 行和第 5 行)时,它会抛出错误。但是当打印令牌时它具有正确的令牌值。我在代码之后粘贴的错误
response = requests.post("some URL")
token = response.text
header_content = "{'Authorization': 'Bearer "+token+"'}"
print(header_content)
response = requests.get(url, headers=header_content)
#response = requests.get(url, headers = {'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1bmlxdWVfbmFtZSI6ImhjbF9yZXBvcnRpbmcuc2VydmljZWFjY291bnRAc2x1LnRlYW1keW5hbWl4LmNvbSIsInRkeF9lbnRpdHkiOiIyIiwidGR4X3BhcnRpdGlvbiI6IjcwIiwiaXNzIjoiVEQiLCJhdWQiOiJodHRwczovL3d3dy50ZWFtZHluYW1peC5jb20vIiwiZXhwIjoxNjIyOTgyNzg5LCJuYmYiOjE2MjI4OTYzODl9.82FuBtybRBk3Ot-whKYEXw2yFeNXBp566MubEA9G-BE'})
the error i am seeing is
Traceback (most recent call last):
File "C:\Users\prasannakumaravel\PycharmProjects\SLU_DailyReport_Automation\Rest_Testing.py", line 24, in <module>
response = requests.get(url, headers=header_content)
File "C:\Users\prasannakumaravel\PycharmProjects\SLU_DailyReport_Automation\venv\lib\site-packages\requests\api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "C:\Users\prasannakumaravel\PycharmProjects\SLU_DailyReport_Automation\venv\lib\site-packages\requests\api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Users\prasannakumaravel\PycharmProjects\SLU_DailyReport_Automation\venv\lib\site-packages\requests\sessions.py", line 528, in request
prep = self.prepare_request(req)
File "C:\Users\prasannakumaravel\PycharmProjects\SLU_DailyReport_Automation\venv\lib\site-packages\requests\sessions.py", line 456, in prepare_request
p.prepare(
File "C:\Users\prasannakumaravel\PycharmProjects\SLU_DailyReport_Automation\venv\lib\site-packages\requests\models.py", line 317, in prepare
self.prepare_headers(headers)
File "C:\Users\prasannakumaravel\PycharmProjects\SLU_DailyReport_Automation\venv\lib\site-packages\requests\models.py", line 449, in prepare_headers
for header in headers.items():
AttributeError: 'str' object has no attribute 'items'
解决方案
header_content
应该是字典而不是字符串
改变这个
header_content = "{'Authorization': 'Bearer "+token+"'}"
至
header_content = {'Authorization': "Bearer "+token}
您可以从错误 Traceback 中跟踪它:
for header in headers.items():
AttributeError: 'str' object has no attribute 'items'
.items()
是一个字典的属性,not string
它返回一个元组对列表:
你的情况header.items()
是
[('Authorization', 'Bearer your_token')]
推荐阅读
- python-3.x - 在 python 中使用 False 布尔条件编写 If 条件时,我没有得到任何输出,表明缩进的代码被跳过,为什么?
- c++ - 错误:二进制表达式 std::map[Callback] 的操作数无效
- linux - 在别名中执行别名
- wordpress - htaccess - wordpress 页面的子域 - 保留原始网址
- java - 无法在同一线程上发送邮件
- c# - 如何在 UWP 的应用中打开另一个应用
- mongodb - 为什么 MongoDbB 不运行且不工作?
- html - Bootstrap 4下拉按钮作为普通按钮
- ios - swift AVAssetWriterInput 问题,我在谷歌找不到答案
- powershell - 在多个文件夹中创建多个文件