博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
requests模块报错:Use body.encode('utf-8') if you want to send it encoded in UTF-8.
阅读量:7123 次
发布时间:2019-06-28

本文共 2444 字,大约阅读时间需要 8 分钟。

在做 企业向微信用户个人付款  功能时,调用第三方sdk,在 进行 requests 的post请求时,

代码如下

req = requests.post(url, data=data,cert(api_client_cert_path, api_client_key_path),)

报错如下

Traceback (most recent call last):  File "G:\FastWorkStateServer\test\wx_withdarw.py", line 44, in 
wx_withdr() File "G:\FastWorkStateServer\test\wx_withdarw.py", line 34, in wx_withdr partner_trade_no=123456789, # 商户订单号 File "G:\FastWorkStateServer\sdk\wx_withdraw.py", line 393, in enterprise_payment raw = self.fetch_with_ssl(url, data, api_cert_path, api_key_path) File "G:\FastWorkStateServer\sdk\wx_withdraw.py", line 95, in fetch_with_ssl cert=(api_client_cert_path, api_client_key_path), File "C:\Users\ASUS\kuaigong3.6.5\lib\site-packages\requests\api.py", line 112, in post return request('post', url, data=data, json=json, **kwargs) File "C:\Users\ASUS\kuaigong3.6.5\lib\site-packages\requests\api.py", line 58, in request return session.request(method=method, url=url, **kwargs) File "C:\Users\ASUS\kuaigong3.6.5\lib\site-packages\requests\sessions.py", line 508, in request resp = self.send(prep, **send_kwargs) File "C:\Users\ASUS\kuaigong3.6.5\lib\site-packages\requests\sessions.py", line 618, in send r = adapter.send(request, **kwargs) File "C:\Users\ASUS\kuaigong3.6.5\lib\site-packages\requests\adapters.py", line 440, in send timeout=timeout File "C:\Users\ASUS\kuaigong3.6.5\lib\site-packages\urllib3\connectionpool.py", line 601, in urlopen chunked=chunked) File "C:\Users\ASUS\kuaigong3.6.5\lib\site-packages\urllib3\connectionpool.py", line 357, in _make_request conn.request(method, url, **httplib_request_kw) File "D:\python3.6.5\lib\http\client.py", line 1239, in request self._send_request(method, url, body, headers, encode_chunked) File "D:\python3.6.5\lib\http\client.py", line 1284, in _send_request body = _encode(body, 'body') File "D:\python3.6.5\lib\http\client.py", line 161, in _encode (name.title(), data[err.start:err.end], name)) from NoneUnicodeEncodeError: 'latin-1' codec can't encode characters in position 100-103: Body ('汉字报错') is not valid Latin-1. Use body.encode('utf-8') if you want to send it encoded in UTF-8.Process finished with exit code 1

 

主要原因是 请求body里面有 汉字,没有进行untf-8编码导致,解决方法,对data进行 encode()编码 即可

req = requests.post(url, data=data.encode(),cert=(api_client_cert_path, api_client_key_path),)

 

转载于:https://www.cnblogs.com/rgcLOVEyaya/p/RGC_LOVE_YAYA_692days_802.html

你可能感兴趣的文章
监听浏览器后退事件
查看>>
【全开源】可视化DIY微信/百度/支付宝小程序saas平台源码
查看>>
视频课程-数组去重你知道多少种方法?-冰山工作室-沙翼-web前端
查看>>
elementUI分页在IE浏览器中存在的bug
查看>>
是哪一瞬间让后端们决定入职的?
查看>>
[实践总结]纯css实现动态边框
查看>>
字幕字体滚动插件——scroxt.js
查看>>
小程序navigationStyle: custom 下web-view高度异常填坑
查看>>
性能与可伸缩性
查看>>
这一篇就够了——APP瘦身总结
查看>>
写篇文章不难
查看>>
解决TextView上的文字与其他view的间距问题
查看>>
从机器智能得到的启示:对年轻人第一份工作的建议
查看>>
object c 一个改变图标颜色的方法
查看>>
Pinpoint-java性能分析最佳实践_开源PaaS Rainbond
查看>>
Kafka 消息序列化和反序列化(上)
查看>>
箭头函数
查看>>
npm--依赖管理 2
查看>>
设计模式 开闭原则
查看>>
UI设计小白怎样学才能快速入门?
查看>>