在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ requests UnicodeEncodeError: 'latin-1'

requests UnicodeEncodeError: 'latin-1'

requests模塊提交json數(shù)據(jù)中有中文報錯求解。


Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\test.py", line 30, in <module>
    sendMessage("測試中文")
  File "C:\Users\Administrator\Desktop\test.py", line 29, in sendMessage
    result=s.post("https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token
="+access_token,data=data)
  File "D:\Python\lib\site-packages\requests-2.10.0-py3.5.egg\requests\sessions.
py", line 518, in post
    return self.request('POST', url, data=data, json=json, **kwargs)
  File "D:\Python\lib\site-packages\requests-2.10.0-py3.5.egg\requests\sessions.
py", line 475, in request
    resp = self.send(prep, **send_kwargs)
  File "D:\Python\lib\site-packages\requests-2.10.0-py3.5.egg\requests\sessions.
py", line 585, in send
    r = adapter.send(request, **kwargs)
  File "D:\Python\lib\site-packages\requests-2.10.0-py3.5.egg\requests\adapters.
py", line 403, in send
    timeout=timeout
  File "D:\Python\lib\site-packages\requests-2.10.0-py3.5.egg\requests\packages\
urllib3\connectionpool.py", line 578, in urlopen
    chunked=chunked)
  File "D:\Python\lib\site-packages\requests-2.10.0-py3.5.egg\requests\packages\
urllib3\connectionpool.py", line 362, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "D:\Python\lib\http\client.py", line 1083, in request
    self._send_request(method, url, body, headers)
  File "D:\Python\lib\http\client.py", line 1127, in _send_request
    body = body.encode('iso-8859-1')
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 53-56: o
rdinal not in range(256)

報錯信息如上

代碼如下:

def sendMessage(node):
    data = json.dumps({'touser':"@all",'toparty':"@all",'msgtype':"text",'agentid':"1000002",'text':{'content':node},'safe':"0"},ensure_ascii=False)
回答
編輯回答
怪痞

把,ensure_ascii=False去掉就行了

import json
node = "測試中文"
data = json.dumps({'touser':"@all",'toparty':"@all",'msgtype':"text",'agentid':"1000002",'text':{'content':node},'safe':"0"},ensure_ascii=False)
data.encode('iso-8859-1')    #報錯

data = json.dumps({'touser':"@all",'toparty':"@all",'msgtype':"text",'agentid':"1000002",'text':{'content':node},'safe':"0"})
data.encode('iso-8859-1')    #正常

還不行就試試requests.post的data不json.dumps, 直接傳

data = {'touser':"@all",'toparty':"@all",'msgtype':"text",'agentid':"1000002",'text':{'content':node},'safe':"0"}

requests.post(url, data=data)  # 數(shù)據(jù)直接傳字典
2017年3月26日 07:27