Xml UnicodeEncodeError:&x27;拉丁语-1';编解码器可以';t编码字符'\u201c';位置2740:序号不在范围内(256)

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

我收到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 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')