python post请求携带的json表单参数防止中文转unicode

问题遇到的现象和发生背景

我在进行这一步的时候,发现他自动将data_2里的中文转成unicode了怎么办。如何防止他转成unicode?

img

问题相关代码

这是我在该网站写的

img

img

这个是我pycharm用接口写的

img

可以看到两个name值是有不同的,怎么解决?谢谢!

        url_params={
            "access_token":token
        }
        tag_info={"tag":{"name":"定时"}}
 
        tag_str=json.dumps(tag_info,ensure_ascii=False)
        #将json格式转换为字符串格式
        response=self.session.post(url='https://api.weixin.qq.com/cgi-bin/tags/create',
                                   params=url_params,
                                   data=tag_str.encode('utf-8'))
        actual_result=jsonpath.jsonpath(response.json(),'$.tag.name')[0]
#因为jsonpath返回的数据格式为列表,要取出数字需要在后面加上[0]
        self.assertEqual(actual_result,'定时')

解决编码格式:

1、将json格式的内容使用json.dumps()转换为字符串格式,并设置参数ensure_ascii=False
(因为json.dumps()会自动将中文转为Unicode编码,所以将ensure_ascii设置为False)
2、在请求中设置编码格式为utf-8(data=字符串格式数据.encode('utf-8'))

别用json参数传递,使用data参数传递试试

把参数转成json,方法如下:
import json
json.dumps(data) #data:参数