如何在Python循环中构造API请求的JSON payload
实现方法
你只需要在循环启动前先初始化一个空字典作为最终payload的容器,循环过程中逐一把提取到的字段按要求的结构存入字典即可,不需要额外复杂逻辑。
完整实现代码如下:
import json # 后续如果需要转JSON字符串传参可以引入 response_payload = response.json() # 初始化空的payload容器 payload = {} for client in response_payload['user_defined']: name = client.get("name") value = client.get("value") required = client.get("required") active = client.get("active") # 以name为键,嵌套属性对象为值写入payload payload[name] = { "value": value, "required": required, "active": active } # 此时payload结构和预期格式完全一致,如果接口要求传JSON字符串,执行下面这行即可 # json_str = json.dumps(payload)
注意事项
- 若原始
user_defined列表中存在重复的name字段值,后遍历到的条目会覆盖之前同name的内容,若业务不允许重复键,可以在赋值前增加判断逻辑,检测到name已存在时做去重或报错处理 - 用
.get()取值时如果对应字段不存在会默认返回None,如果接口要求字段必须存在,可以把.get()换成直接按键取值client["name"],字段缺失时会直接抛出异常方便排查问题
内容的提问来源于stack exchange,提问作者Alex Hoopes
相关产品推荐
相关产品推荐

