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

使用Rust CSV模块读取含逗号字段的CSV文件遇问题求优化方案

解决Rust CSV模块解析含逗号的引号字段时的字段数不匹配错误

问题根源很明确:你在构建CSV阅读器时设置了.quoting(false),这会让阅读器完全忽略CSV的引号规则。原本被双引号包裹的"Hi, Mom!"里的逗号会被当成字段分隔符,把一个字段拆成两个,导致这条记录的字段数(4个)和前一条(3个)不一致,触发报错。而.flexible(true)只是让阅读器容忍字段数变化,并没有正确解析带逗号的字段,属于治标不治本的权宜之计。

正确的解决办法是移除.quoting(false)设置,让CSV阅读器默认处理双引号包裹的字段,这样引号内部的逗号就不会被识别为分隔符了。同时可以保留.trim(csv::Trim::All)来处理字段前后的空格。

修改后的代码:

let mut rdr: csv::Reader<fs::File> = csv::ReaderBuilder::new()
    .trim(csv::Trim::All)
    .from_path(file)?;

如果你的CSV文件使用了非标准的引号字符(比如单引号),可以通过.quote(b'\'')方法指定自定义引号,示例:

let mut rdr: csv::Reader<fs::File> = csv::ReaderBuilder::new()
    .trim(csv::Trim::All)
    .quote(b'\'')
    .from_path(file)?;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 22:30:28