`csv`文件的路径是什么

时间:2018-07-20 08:19:22

标签: rustc-serialize

我尝试复制this,但是复制ReaderBuilder::new().from_path而不是csv::Reader::from_reader

因此,我编写了如下代码:

extern crate csv;
extern crate serde;

#[macro_use]
extern crate serde_derive;

use std::error::Error;
use std::io;
use std::process;
use csv::ReaderBuilder;


#[derive(Debug, Deserialize)]
#[serde(rename_all = "PascalCase")]
struct Record {
    latitude: f64,
    longitude: f64,
    population: Option<u64>,
    city: String,
    state: String,
}
const DATA: &'static str = include_str!("../data/uspop.csv");
fn run() -> Result<(), Box<Error>> {
      let mut rdr = ReaderBuilder::new().from_path(DATA);

        for result in rdr.records() {
        let record = result?;
        println!("{:?}", record);
    }
  /* let mut rdr = csv::Reader::from_reader(io::stdin());
    for result in rdr.deserialize() {
        let record: Record = result?;
        println!("{:?}", record);
        // Try this if you don't like each record smushed on one line:
        // println!("{:#?}", record);
    } */
    Ok(())
}

fn main() {
    if let Err(err) = run() {
        println!("{}", err);
        process::exit(1);
    }
}

但是我收到以下错误,从中我了解到应用程序没有看到我的csv文件:

  

rror [E0599]:在当前范围内找不到类型为records的名为std::result::Result<csv::Reader<std::fs::File>, csv::Error>的方法     -> src / main.rs:26:27      |   26 |导致rdr.records(){      | ^^^^^^^^

我试图将我的uspop.csv文件放在3个位置,但看起来它们都不起作用:

1 /在根的Cargo.toml旁边 2 /在来源中,main.rs旁边 3 /在单独的文件夹root/data/uspop.csv

但是没有人看到,我在这里犯了什么错误!

0 个答案:

没有答案