pythonrequests auth 405错误和AttributeError:“unicode”对象没有属性“items”

2024-10-03 11:14:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用python“requests”模块来访问安全的nifirestapi(https://nifi.apache.org/docs/nifi-docs/rest-api/)。到目前为止,我面临两个问题:

  1. 我尝试使用 “请求”模块登录到安全NIFI(使用OpenLDAP),但是 给我“400”状态码。所以,我 必须在请求的标题中传递“用户名和密码”才能获得 用户令牌。在
  2. 当我试图将获得的令牌传递给 请求:

(例如,pg_resp=requests.get("https://localhost:9443/nifi-api/process-groups/2be8231f-015b-1000-47b1-428fc8c594e1", headers="Authorization: Bearer <auth_code>")

它给出了一个错误“AttributeError:'unicode'对象没有属性'items'”。我试图将“unicode”更改为string,但“string”也没有属性“items”

两个“unicode”的回溯是:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/shambakey1/miniconda2/lib/python2.7/site-packages/requests/api.py", line 70, in get
    return request('get', url, params=params, **kwargs)
  File "/home/shambakey1/miniconda2/lib/python2.7/site-packages/requests/api.py", line 56, in request
    return session.request(method=method, url=url, **kwargs)
  File "/home/shambakey1/miniconda2/lib/python2.7/site-packages/requests/sessions.py", line 461, in request
    prep = self.prepare_request(req)
  File "/home/shambakey1/miniconda2/lib/python2.7/site-packages/requests/sessions.py", line 394, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "/home/shambakey1/miniconda2/lib/python2.7/site-packages/requests/models.py", line 295, in prepare
    self.prepare_headers(headers)
  File "/home/shambakey1/miniconda2/lib/python2.7/site-packages/requests/models.py", line 407, in prepare_headers
    for header in headers.items():
AttributeError: 'unicode' object has no attribute 'items'

“str”的回溯是:

^{pr2}$

我想知道我是不是做错了什么事?在

问候


Tags: inpyapihomerequestlibpackagesline
1条回答
网友
1楼 · 发布于 2024-10-03 11:14:17

您需要将头作为dict传递给requests.get()方法:

pg_resp=requests.get(
    "https://localhost:9443/nifi-api/process-groups/2be8231f-015b-1000-47b1-428fc8c594e1",
    headers={"Authorization": "Bearer <auth_code>"}
)

requests模块试图将字符串解包为dict(对其调用items()),并且str和{}都没有这样的方法,因此出现错误。在

相关问题 更多 >