Python中发送post请求,构建请求体的时候请求负载如下,
关键的地方就是那个value的值,直接发送那个value可以,我想要根据变量修改里边的信息。用的方法是
addressvalue = f"{{\"address\":\"{address}\",\"longitude\":{longitude},\"latitude\":{latitude},\"province\":\"{province}\",\"city\":\"{city}\",\"region\":\"{region}\"}}"
接口没报错,但是后端处理后是海外、海外、详细地址.......,我猜应该是分割字符串的问题,我直接发送原本的写死的串就没问题。求解。
用json.dumps转整个结构体,然后发送直接报500,根据ChatGPT的思路只将这个键的值改为JSON字符串的格式,直接发送就成功.....
但是用字典构建这个值,再只将值转JSON,再发送就不行。
(1)尝试修改字符串再转为JSON(失败)
replacement_map = { "金花街道高第坊39号荔湾区金花街锦绣社区": address, "113.252272": longitude, "23.127255": latitude, "广东省": province, "广州市": city, "荔湾区": region } # 遍历替换 for key, value in replacement_map.items(): data_rigth["shopAttrRespList"][0]["child"][0]["child"][0]["value"] = \ data_rigth["shopAttrRespList"][0]["child"][0]["child"][0]["value"].replace(key, value) # 转为JSON格式 data_rigth["shopAttrRespList"][0]["child"][0]["child"][0]["value"] = json.dumps( json.loads(data_rigth["shopAttrRespList"][0]["child"][0]["child"][0]["value"]), ensure_ascii=False)
(1)尝试修改字典再转为JSON(失败)
addressvalue_dict = {'address': address, 'longitude':longitude, 'latitude': latitude, 'province': province, 'city': city, 'region': region} data_rigth["shopAttrRespList"][0]["child"][0]["child"][0]["value"] = json.dumps(addressvalue_dict, ensure_ascii=False) response = session.post(url, json=data_rigth, headers=headers, cookies=cookies)
我想要根据变量修改里边的信息,并使后端成功分割。
在你的问题中,你正在尝试构建一个JSON字符串,然后想要通过变量动态修改其中的值。然而,你发现直接发送JSON字符串有效,但尝试使用Python的json.dumps
或字典构建方法时却遇到了问题。
问题的根源可能在于,当你尝试将JSON字符串手动拼接时,可能会产生格式错误,这可能会导致后端无法正确解析。此外,如果后端期望接收一个有效的JSON对象,而不仅仅是一个JSON格式的字符串,那么使用json.dumps
或字典构建方法可能会更有效。
下面是一个使用Python字典和json.dumps
来动态修改JSON请求负载中值的示例:
import json# 初始化一个字典来存储你的数据data = { "address": "初始地址", "longitude": 123.456, "latitude": 78.901, "province": "初始省份", "city": "初始城市", "region": "初始区域"}# 使用变量来更新字典中的值address = "新的地址"longitude = 111.222province = "新的省份"data["address"] = addressdata["longitude"] = longitudedata["province"] = province# 将字典转换为JSON字符串json_data = json.dumps(data)# 现在你可以使用json_data作为你的POST请求负载
在这个示例中,我们首先创建了一个包含初始数据的字典。然后,我们使用变量来更新字典中的值。最后,我们使用json.dumps
将字典转换为JSON字符串。这样,你就可以在需要时动态地修改JSON请求负载中的值,并且确保生成的JSON字符串格式正确。
如果你在使用这种方法时仍然遇到问题,那么问题可能在于后端的处理逻辑。你可能需要检查后端的代码,看看它期望接收什么样的数据格式,或者联系后端的开发者以获取更多帮助。
问题内容: 我有一个Jmeter测试计划,希望我的HttpSampler发送一个发布请求。 请求的正文应包含Json,如下所示: 我已经设置了一个随机变量生成器,该变量生成器在每次调用时都返回格式正确的productId。我想做的是通过直接在请求主体中填充从生成器获取的随机pid的productId来生成有效负载。像这样(假设***是脚本转义符): 可能吗?如果是,怎么办?如果没有,您将如何处理该
自1.14.0开始,zuul网关支持动态修改请求参数。即在网关修改客户端传递过来的参数,然后发送到微服务端。 客户端参数{"name": "jim"} --> zuul中修改为{"name": "Lucy"} --> 微服务端将收到{"name": "Lucy"} 使用场景:客户端请求参数经过加密,在网关解密后,再次发送明文参数给微服务端 如何使用 在网关springboot启动函数中添加如下代
我想在正文中加载JSON文件,但得到的错误是415。 你能帮帮我吗? 代码是:
问题内容: 在我的Python测试脚本中,我多次使用此模式: 有没有更简洁的方法来临时修改搜索路径? 问题答案: 您可以使用一个简单的上下文管理器: 然后要导入模块,您可以执行以下操作: 从语句主体退出时,将恢复到原始状态。如果仅使用该块中的模块,则可能还希望从以下位置删除其引用:
问题内容: 我正在尝试在python 2.7中编辑/修改现有的元数据。更具体而言,我在我的月历中有GPS坐标,但是海拔字段不正确。有办法改变吗? 我看过了 ,但似乎找不到修改现有字段的方法。 有没有人设法做到这一点?听起来这很简单,但我似乎无法解决。 干杯戴夫 问题答案: (550,1)%某些值以小数格式保存。这意味着550m(51,2)将为25.5m。 将高度设置为140m
我正在尝试向CloudScrape的在线网站scraper发出API请求,文档显示了以下示例。 POST /api/runs/{runId}/执行/输入/等待HTTP/1.1 X-CloudScrape-Access: ga09usdm8osdf8n9sodf X-CloudScrape-Account:87750c5f-7423-4438-b3f1-7b8b86990621 接受:applica