Postman Newman无法解析CSV文件中的JSON数据求助
CSV与Excel数据格式适配Newman的解决方案
先梳理你提到的两种数据存储格式:
数据格式对比
Excel保存的原始格式
BOOKID123,None,{"present":true,"ID":{"1234":{"present":true,"answer":{"code":23,"message":"Ready to publish"}}}}
CSV存储后的问题版本
BOOKID123,None,"{\"present\":true\"ID\":{\"1234\":{\"present\":true\",answer:{\"code\":23,\"message\":\"Ready to publish\"}}}}"
你遇到的解析困境
Postman能正常解析CSV第三列的JSON,但Newman命令行却接连报错:
- 初次解析错误:
Invalid closing quote at line 2; found "\"" instead of delimiter "," - 给双引号加反斜杠转义后,又出现:
Number of columns on line 2 does not match header(根源是JSON里的逗号被当成了CSV的列分隔符)
完全理解你不想改用JSON文件的想法——Excel批量维护数据确实比纯JSON顺手太多,其实不用换格式,试试这几个实用方案:
可行解决办法
1. 遵循CSV标准转义规则(最推荐)
CSV的标准转义逻辑是:如果字段包含逗号、双引号这类特殊字符,必须用双引号包裹整个字段,并且字段内部的双引号要替换成两个连续的双引号(而非反斜杠)。
调整后的第三列JSON格式如下:
"{""present"":true,""ID"":{""1234"":{""present"":true,""answer"":{""code"":23,""message"":""Ready to publish""}}}}"
对应的完整CSV行:
BOOKID123,None,"{""present"":true,""ID"":{""1234"":{""present"":true,""answer"":{""code"":23,""message"":""Ready to publish""}}}}"
更省心的是,你直接在Excel里编辑JSON内容,然后另存为CSV格式时,Excel会自动按这个规则处理转义,不用手动修改。
2. 给Newman指定CSV解析参数
如果标准格式仍有问题,可以在Newman运行命令里加上--csv-parse-options参数,自定义解析规则,明确指定引号和分隔符:
newman run your-collection.json -d your-data.csv --csv-parse-options quote='"' --csv-parse-options delimiter=','
这个参数能让Newman更精准地识别CSV的字段边界,避免把JSON里的逗号误判为列分隔符。
3. Excel单元格格式设置小技巧
在Excel里编辑JSON时,先把存储JSON的列设置为「文本格式」,这样输入的双引号、逗号不会被Excel自动修改,保存成CSV时转义也会更准确,减少手动调整的麻烦。
内容的提问来源于stack exchange,提问作者SUM
相关产品推荐
相关产品推荐

