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

如何将CSV数据按ID为键、JSON字符串为值的格式插入Redis

解决方案:CSV批量导入Redis生成转义JSON字符串值

你之前的命令异常是因为没有正确构造合法的转义JSON结构,同时引号转义逻辑不符合redis-cli的解析规则,可参考以下两种方案:

方案一:awk拼接(适合CSV无特殊字符场景)

如果你的CSV字段内不包含逗号、双引号等特殊字符,直接用awk即可完成拼接导入:

tail -n +2 dnis.csv | awk -F ',' '{
    # 构造带转义的JSON字符串
    json_val = sprintf("{\\\"Value1\\\":\\\"%s\\\",\\\"Value2\\\":\\\"%s\\\",\\\"Value3\\\":\\\"%s\\\"}", $2, $3, $4)
    # 输出符合Redis要求的SET命令
    print "SET \"" $1 "\" \"" json_val "\""
}' | redis-cli --pipe

方案二:csvkit+jq处理(兼容性更强,适合含特殊字符的CSV)

如果字段存在特殊字符,建议用专业的CSV和JSON处理工具避免解析错误,先安装csvkit和jq后执行以下命令:

csvjson dnis.csv | jq -c '.[]' | while read -r row; do
    # 提取ID作为Redis的Key
    key=$(echo "$row" | jq -r '.ID')
    # 剔除ID字段后将剩余内容转为转义后的JSON字符串
    value=$(echo "$row" | jq -c 'del(.ID)' | sed 's/"/\\"/g')
    echo "SET \"$key\" \"$value\""
done | redis-cli --pipe

结果验证

导入完成后执行GET 1,即可返回符合要求的结果:

"{\"Value1\":\"A\",\"Value2\":\"B\",\"Value3\":\"C\"}"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:24:08