GET请求传递嵌套JSON参数时如何动态修改指定键的取值
实现方案
- 先将固定结构的请求参数定义为Python字典作为模板,后续仅修改动态值即可
import requests # 定义请求参数模板 payload = { "where": { "where": { "where": { "expression": { "valueIsRelationField": False, "fieldName": "id.stationCode", "operator": "eq", "value": "030-AABBCC" } }, "and": { "expression": { "valueIsRelationField": False, "fieldName": "id.datatypeCode", "operator": "eq", "value": "HHS" } } }, "and": { "expression": { "valueIsRelationField": False, "fieldName": "dataValue", "operator": "null", "value": "false" } } }, "and": { "expression": { "valueIsRelationField": False, "fieldName": "id.dataTime", "operator": "btn", "value": "2019-05-01T00:00:00,2021-06-16T17:04:18.928" } } }
- 按照嵌套层级定位到目标字段,赋值为动态值即可,你需要修改的站点编码字段层级如下:
# 动态赋值,可替换为任意你需要生成的变量值 target_station_code = "031-AABBCC" payload["where"]["where"]["where"]["expression"]["value"] = target_station_code # 如果有其他需要动态修改的参数,同理按层级赋值即可,比如修改查询时间范围: # payload["and"]["expression"]["value"] = "2023-01-01T00:00:00,2024-01-01T00:00:00"
- 发送请求时直接将处理后的字典传入
requests的json参数,框架会自动完成JSON序列化,无需手动转换格式:
url = "你的实际请求接口地址" response = requests.post(url, json=payload) # 后续处理响应逻辑 print(response.json())
内容的提问来源于stack exchange,提问作者Vikrant
相关产品推荐
相关产品推荐

