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

如何编写Python脚本在Robot Framework中调用json2csv并传参?

我来帮你梳理下怎么在Robot Framework里调用json2csv的功能,其实核心就是写一个简单的Python封装层,把Robot的参数传递过去就行,具体步骤如下:

第一步:编写Python封装脚本

先创建一个Python文件(比如命名为JsonToCsvConverter.py),里面写一个封装函数,负责接收Robot传来的参数,调用json2csv的转换逻辑,同时处理一些常见的输入场景(比如JSON文件路径或JSON字符串):

from json2csv import convert
import json

def convert_json_to_csv(json_input, output_csv_path, fields=None, delimiter=","):
    """
    将JSON数据转换为CSV文件,供Robot Framework调用
    :param json_input: 支持两种输入:JSON文件路径(如"data/input.json"),或JSON格式字符串
    :param output_csv_path: 输出CSV文件的保存路径
    :param fields: 可选参数,指定要导出的字段列表(如["name", "age", "email"]),不填则导出所有字段
    :param delimiter: 可选参数,CSV的字段分隔符,默认是逗号
    """
    try:
        # 区分输入是JSON文件还是字符串
        if isinstance(json_input, str) and json_input.endswith(".json"):
            # 从文件读取JSON数据
            with open(json_input, "r", encoding="utf-8") as json_file:
                json_data = json.load(json_file)
        else:
            # 直接解析JSON字符串
            json_data = json.loads(json_input)
        
        # 调用json2csv的核心转换方法
        convert(
            input_data=json_data,
            output_path=output_csv_path,
            fields=fields,
            delimiter=delimiter
        )
        return f"转换成功!CSV文件已保存至:{output_csv_path}"
    except Exception as e:
        # 抛出异常,让Robot Framework捕获并处理
        raise Exception(f"JSON转CSV失败:{str(e)}")
第二步:在Robot Framework中调用封装函数

接下来在你的Robot测试套件里,导入刚才写的Python文件,然后就可以像调用普通Robot关键字一样使用这个函数了:

*** Settings ***
Library    JsonToCsvConverter.py    # 如果文件不在当前目录,要写相对/绝对路径,比如"../libs/JsonToCsvConverter.py"

*** Test Cases ***
场景1:转换本地JSON文件到CSV
    ${conversion_result}    Convert Json To Csv    json_input=test_data/user_info.json    output_csv_path=output/user_report.csv    fields=["username", "email", "join_date"]
    Log    ${conversion_result}

场景2:直接转换JSON字符串到CSV
    ${sample_json_str}    Set Variable    [{"product":"Laptop","price":999},{"product":"Phone","price":599}]
    ${conversion_result}    Convert Json To Csv    json_input=${sample_json_str}    output_csv_path=output/product_list.csv    delimiter=";"
    Log    ${conversion_result}

场景3:处理转换失败的情况(可选)
    Run Keyword And Expect Error    *转换失败*    Convert Json To Csv    json_input=invalid_json.txt    output_csv_path=output/fail_test.csv
    Log    已捕获预期的转换错误
一些注意事项
  • 确保你已经正确安装了json2csv包:pip install json2csv(你提到已经装了,这里再确认下版本匹配问题)
  • 如果json2csv的API有更新(比如convert函数的参数名变化),记得同步调整封装脚本里的调用逻辑
  • Robot里的路径尽量用相对路径,避免硬编码绝对路径,保证测试的可移植性
  • 封装函数里的异常处理可以根据你的需求扩展,比如增加日志记录等

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:27:03