JMeter中用Groovy脚本将CSV转换为HashMap的实现问题
Groovy实现CSV转指定格式HashMap
完整可行代码
补全你卡住的部分,即可生成目标格式的HashMap:
def source = new File('1000items.csv').readLines() def payload = [:] // 跳过表头行,遍历所有数据行 source.takeRight(source.size() - 1).each { line -> def parts = line.split(',') // 以itemId为key,name和lastname组成的列表为value payload.put(parts[0], [parts[1], parts[2]]) } // 打印结果验证 println payload
优化处理(可选)
如果CSV字段前后存在多余空格,可统一去除,避免结果带不必要的空白字符:
def source = new File('1000items.csv').readLines() def payload = [:] source.takeRight(source.size() - 1).each { line -> // 拆分后批量去除每个字段的前后空格 def parts = line.split(',').collect { it.trim() } // 校验行格式,避免因字段缺失报错 if (parts.size() >= 3) { payload.put(parts[0], [parts[1], parts[2]]) } else { println "忽略格式错误的行:$line" } }
代码说明
line.split(','):将每行按逗号拆分为字符串数组,例如数据行12345, n1, ln1会拆成["12345", " n1", " ln1"][parts[1], parts[2]]:利用Groovy列表语法,直接将拆分后的第2、3个元素组成列表作为HashMap的valuecollect { it.trim() }:批量处理所有字段的前后空格,让结果更整洁- 格式校验:添加
parts.size() >=3判断,避免因CSV行格式异常导致脚本崩溃
内容的提问来源于stack exchange,提问作者Ibivio R
相关产品推荐
相关产品推荐

