requests模块提交json数据中有中文报错求解。
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去掉就行了
还不行就试试requests.post的data不json.dumps, 直接传