如何在Rust中读取没有标题的CSV?我已经查阅了文档并尝试了15个不同的示例,但似乎都不是我需要的。
可以看看Python是多么简单:
csv.DictReader(f, fieldnames=['city'])
你如何在Rust中做到这一点?
当前的尝试:
use std::fs::File;
use serde::Deserialize;
#[derive(Debug, Deserialize)]
struct CityRow {
city: &str,
pop: u32,
}
fn doit() -> zip::result::ZipResult<()>
{
let filename = "cities.csv";
let mut zip = zip::ZipArchive::new(File::open(filename).unwrap())?;
let mut file = zip.by_index(0).unwrap();
println!("Filename: {}", file.name());
let mut reader = csv::Reader::from_reader(Box::new(file));
reader.set_headers(csv::StringRecord([ "city", "pop" ]));
for record in reader.records() {
// let record: CityRow = record.unwrap();
// let record = record?;
println!("{:?}", record);
}
Ok(())
}
csv
包来提取行?有几种方法可以做到这一点(主要区别在于是否使用 Serde)。csv::ReaderBuilder::has_headers
可能会有所帮助,但我需要看到代码才能测试。 - smitop