Xml UnicodeEncodeError:&x27;拉丁语-1';编解码器可以';t编码字符'\u201c';位置2740:序号不在范围内(256)
我收到UnicodeEncodeError:“latin-1”编解码器无法对2740位置的字符“\u201c”进行编码:序号不在范围(256)内,尝试使用以下代码生成REST POST:Xml UnicodeEncodeError:&x27;拉丁语-1';编解码器可以';t编码字符'\u201c';位置2740:序号不在范围内(256),xml,python-3.x,rest,encode,python-unicode,Xml,Python 3.x,Rest,Encode,Python Unicode,我收到UnicodeEncodeError:“latin-1”编解码器无法对2740位置的字符“\u201c”进行编码:序号不在范围(256)内,尝试使用以下代码生成REST POST: import requests, sys, base64, collections, json, urllib3, re from getpass import getpass from requests.auth import HTTPBasicAuth from xml.etree import Eleme
import requests, sys, base64, collections, json, urllib3, re
from getpass import getpass
from requests.auth import HTTPBasicAuth
from xml.etree import ElementTree
# disable TLS warnings
urllib3.disable_warnings()
print ("\nPlease enter your 1DC username:")
user = input()
print ("\n")
password = getpass("Please enter your 1DC password:")
print ("\n")
xml = """<?xml version="1.0" encoding="utf-8"?>
<ticket>
<id>#####</id>
<subject>Test Firewall Request For API</subject>
<requester>###</requester>
</ticket>"""
header={'Authorization':'HTTPBasicAuth(user, password)','Content-
Type':'application/xml'}
response=requests.post('https://server_ip/securechangeworkflow/api/securechange/tickets/', data=xml, headers=header, verify=False)
print (response.text.encode("utf-8"))
Traceback (most recent call last):
File "api_tufin_7.py", line 313, in <module>
response=requests.post('https://server_ip/securechangeworkflow/api/securechange/tickets/', data=xml, headers=header, verify=False)
File "C:\Program Files\Python35\lib\site-packages\requests\api.py", line 116, in post
return request('post', url, data=data, json=json, **kwargs)
File "C:\Program Files\Python35\lib\site-packages\requests\api.py", line 60, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Program Files\Python35\lib\site-packages\requests\sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "C:\Program Files\Python35\lib\site-packages\requests\sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "C:\Program Files\Python35\lib\site-packages\requests\adapters.py", line 449, in send
timeout=timeout
File "C:\Program Files\Python35\lib\site-packages\urllib3\connectionpool.py", line 600, in urlopen
chunked=chunked)
File "C:\Program Files\Python35\lib\site-packages\urllib3\connectionpool.py", line 354, in _make_request
conn.request(method, url, **httplib_request_kw)
File "C:\Program Files\Python35\lib\http\client.py", line 1083, in request
self._send_request(method, url, body, headers)
File "C:\Program Files\Python35\lib\http\client.py", line 1127, in _send_request
body = body.encode('iso-8859-1')
UnicodeEncodeError: 'latin-1' codec can't encode character '\u201c' in position 2740: ordinal not in range(256)
导入请求、sys、base64、集合、json、urllib3、re
从getpass导入getpass
从requests.auth导入HTTPBasicAuth
从xml.etree导入元素树
#禁用TLS警告
urllib3.禁用_警告()
打印(“\n请输入1DC用户名:”)
用户=输入()
打印(“\n”)
password=getpass(“请输入1DC密码:”)
打印(“\n”)
xml=”“”
#####
测试API的防火墙请求
###
"""
header={'Authorization':'HTTPBasicAuth(用户,密码)','Content-
类型“:'application/xml'}
response=requests.post('https://server_ip/securechangeworkflow/api/securechange/tickets/,data=xml,headers=header,verify=False)
打印(响应.文本.编码(“utf-8”))
回溯(最近一次呼叫最后一次):
文件“api_tufin_7.py”,第313行,在
response=requests.post('https://server_ip/securechangeworkflow/api/securechange/tickets/,data=xml,headers=header,verify=False)
文件“C:\Program Files\Python35\lib\site packages\requests\api.py”,第116行,在post中
返回请求('post',url,data=data,json=json,**kwargs)
文件“C:\Program Files\Python35\lib\site packages\requests\api.py”,第60行,在请求中
return session.request(method=method,url=url,**kwargs)
文件“C:\Program Files\Python35\lib\site packages\requests\sessions.py”,第533行,在请求中
resp=自我发送(准备,**发送)
文件“C:\Program Files\Python35\lib\site packages\requests\sessions.py”,第646行,在send中
r=适配器.send(请求,**kwargs)
文件“C:\Program Files\Python35\lib\site packages\requests\adapters.py”,第449行,在send中
超时=超时
文件“C:\Program Files\Python35\lib\site packages\urllib3\connectionpool.py”,第600行,在urlopen中
分块=分块)
文件“C:\Program Files\Python35\lib\site packages\urllib3\connectionpool.py”,第354行,在请求中
conn.request(方法,url,**httplib\u request\u kw)
请求中第1083行的文件“C:\Program Files\Python35\lib\http\client.py”
self.\u发送请求(方法、url、正文、标题)
文件“C:\Program Files\Python35\lib\http\client.py”,第1127行,在发送请求中
body=body.encode('iso-8859-1')
UnicodeEncodeError:“latin-1”编解码器无法对2740位置的字符“\u201c”进行编码:序号不在范围内(256)
我不确定是什么导致了这个错误 使用data=xml.encode('UTF-8')
使用data=xml.encode('UTF-8')