Python常见问题 - requests请求参数包含中文报错:UnicodeEncode
发布时间:2020-12-20 10:05:44 所属栏目:Python 来源:网络整理
导读:背景 在做接口自动化的时候,Excel作为数据驱动,里面存了中文,通过第三方库读取中文当请求参数传入? requests.post() ?里面,就会报错 UnicodeEncodeError: 'latin-1' codec can't encode characters in position 13-14: Body ('小明') is not valid Latin
背景在做接口自动化的时候,Excel作为数据驱动,里面存了中文,通过第三方库读取中文当请求参数传入?requests.post()?里面,就会报错 UnicodeEncodeError: 'latin-1' codec can't encode characters in position 13-14: Body ('小明') is not valid Latin-1. Use body.encode('utf-8') if you want to send it encoded in UTF-8. 此时我封装的post请求方法是这样的 def post(self,url,data=None,file=None,header=None,cookie=None): try: res = requests.post(url,data=data,files=file,headers=header,cookies=cookie,verify=False) return res except BaseException as e: loggings.error("post请求错误,错误原因:%s" % e) raise e 这个时候,我们要将传入的参数按照utf-8格式编码 # 先转成Json字符串 data = json.dumps(data) 按照utf-8编码成字节码 data = data.encode(utf-8") 改造后的方法如下: data = json.dumps(data) data = data.encode(") res = requests.post(url,1)">raise e ? 当然有更简单的方法就是将字典数据转成json字符串传入,请求参数名叫?data?,代码如下: json.dumps(data)
res = requests.post(url,json=data,1)">raise e
? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |