You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Robot Framework中如何用变量替换JSON字符串中的值?

在Robot Framework中替换JSON字符串指定值为环境变量格式的方法

针对你的需求,这里提供三种实用的实现方式,适配不同场景:

方法一:直接字符串替换(适合简单JSON结构)

如果你的JSON结构简单、无特殊字符干扰,可直接用Robot Framework的Replace String关键字做文本替换:

*** Settings ***
Library    String

*** Test Cases ***
Replace JSON Values With Env Vars
    ${original_json}    ${EMPTY}
    ...    {"key1":"value1",
    ...     "key2": {"key3": "value3"}}
    # 替换value1为%{value1}
    ${modified_json}    Replace String    ${original_json}    "value1"    "%{value1}"
    # 替换value3为%{value3}
    ${modified_json}    Replace String    ${modified_json}    "value3"    "%{value3}"
    Log    ${modified_json}
    # 后续可直接将${modified_json}传入Post/Put请求的body中

方法二:解析为字典修改后转JSON(推荐,适配复杂结构)

对于嵌套或复杂JSON,先解析为Python字典修改对应值,再转回JSON字符串,能避免格式错误:

*** Settings ***
Library    JSONLibrary
Library    Collections

*** Test Cases ***
Modify JSON Via Dictionary
    ${original_json}    ${EMPTY}
    ...    {"key1":"value1",
    ...     "key2": {"key3": "value3"}}
    # 将JSON字符串解析为字典
    ${json_dict}    Load JSON From String    ${original_json}
    # 修改顶层key1的值
    Set To Dictionary    ${json_dict}    key1    %{value1}
    # 修改嵌套的key3的值
    ${inner_dict}    Get From Dictionary    ${json_dict}    key2
    Set To Dictionary    ${inner_dict}    key3    %{value3}
    # 将字典转回JSON字符串
    ${modified_json}    Dump JSON To String    ${json_dict}
    Log    ${modified_json}

方法三:提前定义带变量的JSON模板(最便捷)

直接在定义JSON模板时就使用Robot的环境变量格式,若需运行时自动替换为变量实际值,此方法最省心:

*** Test Cases ***
Use JSON Template With Env Vars
    # 直接定义包含环境变量的JSON模板
    ${json_template}    ${EMPTY}
    ...    {"key1":"%{value1}",
    ...     "key2": {"key3": "%{value3}"}}
    # 运行时Robot会自动将%{value1}替换为对应的环境变量值
    Log    ${json_template}
    # 直接传入Post/Put请求即可

注意:若需保留%{value1}格式而非替换为实际值,优先选方法一、二;若需自动替换为环境变量的真实内容,方法三直接可用。

内容的提问来源于stack exchange,提问作者jaqkraemer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 03:45:42