Python修改字典默认属性值构造POST请求payload的方法
Prop默认值灵活修改实现方案
核心逻辑是把全量默认prop配置作为固定模板,每次生成请求参数时先从模板拷贝出全新的配置副本,仅修改指定的prop值,从根源避免上次修改的配置残留,保证其余prop始终保持默认。
实现步骤
- 提前定义所有prop的默认值映射常量,作为每次生成配置的统一基准
- 函数被调用时,优先拷贝默认模板生成当前次的配置对象,全程不修改原始模板
- 仅替换传入的指定prop对应的value,其余配置完全保留默认值
- 将配置对象按接口要求拼接为
key=value格式的换行字符串,组装成合法POST payload
完整实现代码
import requests # 固定默认值模板,不要直接修改这个对象 DEFAULT_PROP_CONFIG = { "prop1": "default_value", "prop2": "default_value", "prop3": "default_value", "prop4": "default_value", "prop5": "default_value", "prop6": "default_value", "prop7": "default_value", "prop8": "default_value" } def property_value(prop_name, value): # 每次调用拷贝一份全新的默认配置,避免历史修改残留 current_config = DEFAULT_PROP_CONFIG.copy() # 仅修改传入的指定prop current_config[prop_name] = value # 拼接为接口要求的content字符串格式 content = "\n".join([f"{prop}={val}" for prop, val in current_config.items()]) # 构造请求payload payload = { "id": 104, "content": content } # 发送请求 resp = requests.post(url, headers=headers, json=payload) return resp
使用方式
- 首次运行要把prop3默认值改成data1,直接调用
property_value("prop3", "data1")即可,其余prop自动保留默认值 - 下次运行要只修改prop8默认值,直接调用
property_value("prop8", "你的目标值"),函数会自动重置所有prop为默认值后再修改prop8,不会保留上次prop3的修改 - 如果需要一次修改多个prop,只需要把函数入参改成字典类型,循环更新
current_config即可,核心逻辑不变
注意:禁止直接修改
DEFAULT_PROP_CONFIG原始模板,否则会导致后续调用的默认基准被污染。
内容的提问来源于stack exchange,提问作者Ghazal Saeed
相关产品推荐
相关产品推荐

