【python】记录一次python发送json数据到go服务端,服务端解析失败问题

【python】记录一次python发送json数据到go服务端,服务端解析失败问题

背景:在做性能测试时,python把采集到的性能数据通过post回传到服务端,服务端用go实现,服务端是将接收的json通过json.Unmarshal反序列化为对应的结构体,但在实现时一直提示数据类型错误的问题

问题代码

python发送请求
dict_data = {a:1, b:2, c:3}   # dict_data是一个字典
headers = {'Content-Type': 'application/json'}
data = json.dumps(dict_data)
response = requests.post(url, json=data, headers=headers)
go接收参数反序列化为结构体
// perfData是结构体,对应的json数据
err := json.Unmarshal(body, &PerfData)
报错信息
err1 is : json: cannot unmarshal string into Go value of type dao.PerfData

借助文心一言,说是数据类型错误,然后一直对比查看json的每个字段和结构体中的数据类型,发现没问题

解决

忽然想起来,python中发送json格式的数据时,会自动将字典转化为json,无需手动json.dumps转化为json数据

python正确代码
dict_data = {a:1, b:2, c:3}   # dict_data是一个字典
headers = {'Content-Type': 'application/json'}
response = requests.post(url, json=dict_data, headers=headers)     # 会自动把dict转化为json,所以参数还是字典类型
posted @ 2024-04-26 16:11  alisleepy  阅读(23)  评论(0编辑  收藏  举报