【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,所以参数还是字典类型
标签:python,headers,json,dict,data,服务端
From: https://www.cnblogs.com/alisleepy/p/18160333