UnicodeEncodeError:'latin-1'编解码器无法在位置 0 中编码字符"\u201c":序号不在范围内 (256)



我有一个脚本,它在本地运行得很好,但在gitlab运行器上失败并显示UnicodeEncodeError消息。

实际错误消息:UnicodeEncodeError: 'latin-1' codec can't encode character 'u201c' in position 0: ordinal not in range(256)

这意味着什么?我该如何解决?

下面是一段代码。

import requests
def get_subgroups(group_id):
subgroups_ids = []
subgroup_qry = 'https://gitlab.example.com/api/v4/groups'+group_id+'subgroups?pagination=keyset&per_page=500'
response = requests.get(subgroup_qry, headers=gl_auth_header)
if response.status_code == 200:
subgroups = json.loads(response.text)
try:
for subgroup in subgroups:
subgroup_ids.append(subgroup['id'])
except Exception as e:
print(e)
return subgroups_ids
else:
print("Invalid response", response.status_code)
sub_groups = get_subgroups(GROUP_ID)

以下是完整的错误消息:

Traceback (most recent call last):
188  File "gitlab_scripts/protected_vars.py", line 95, in <module>
189    sub_groups = get_subgroups(GROUP_ID)
190  File "gitlab_scripts/protected_vars.py", line 37, in get_subgroups
191    response = requests.get(subgroup_qry, headers=gl_auth_header)
192  File "/usr/local/lib/pyenv/versions/3.10.2/lib/python3.10/site-packages/requests/api.py", line 75, in get
193    return request('get', url, params=params, **kwargs)
194  File "/usr/local/lib/pyenv/versions/3.10.2/lib/python3.10/site-packages/requests/api.py", line 61, in request
195    return session.request(method=method, url=url, **kwargs)
196  File "/usr/local/lib/pyenv/versions/3.10.2/lib/python3.10/site-packages/requests/sessions.py", line 529, in request
197    resp = self.send(prep, **send_kwargs)
198  File "/usr/local/lib/pyenv/versions/3.10.2/lib/python3.10/site-packages/requests/sessions.py", line 645, in send
199    r = adapter.send(request, **kwargs)
200  File "/usr/local/lib/pyenv/versions/3.10.2/lib/python3.10/site-packages/requests/adapters.py", line 440, in send
201    resp = conn.urlopen(
202  File "/usr/local/lib/pyenv/versions/3.10.2/lib/python3.10/site-packages/urllib3/connectionpool.py", line 703, in urlopen
203    httplib_response = self._make_request(
204  File "/usr/local/lib/pyenv/versions/3.10.2/lib/python3.10/site-packages/urllib3/connectionpool.py", line 398, in _make_request
205    conn.request(method, url, **httplib_request_kw)
206  File "/usr/local/lib/pyenv/versions/3.10.2/lib/python3.10/site-packages/urllib3/connection.py", line 239, in request
207    super(HTTPConnection, self).request(method, url, body=body, headers=headers)
208  File "/usr/local/lib/pyenv/versions/3.10.2/lib/python3.10/http/client.py", line 1282, in request
209    self._send_request(method, url, body, headers, encode_chunked)
210  File "/usr/local/lib/pyenv/versions/3.10.2/lib/python3.10/http/client.py", line 1323, in _send_request
211    self.putheader(hdr, value)
212  File "/usr/local/lib/pyenv/versions/3.10.2/lib/python3.10/site-packages/urllib3/connection.py", line 224, in putheader
213    _HTTPConnection.putheader(self, header, *values)
214  File "/usr/local/lib/pyenv/versions/3.10.2/lib/python3.10/http/client.py", line 1255, in putheader
215    values[i] = one_value.encode('latin-1')
216 UnicodeEncodeError: 'latin-1' codec can't encode character 'u201c' in position 0: ordinal not in range(256)

gl_auth_header中有unicode字符LEFT DOUBLE QUOTETION MARK\u201c。哪个请求试图用它无法表示的拉丁文1编码。删除标题中的左引号。

最新更新