CSV类型提供程序无法在F#interactive中找到列

时间:2013-12-15 23:30:04

标签: f# type-providers f#-interactive f#-data

因此,假设我有一个CSV文件,其中包含包含Population和Profit列的标题,我想在F#interactive中使用它。我有以下代码:

#r "../packages/FSharp.Data.1.1.10/lib/net40/FSharp.Data.dll"

open FSharp.Data

// load csv header
let cities = new CsvProvider<"cities.csv">()

// how to reach data
let firstRow = cities.Data |> Seq.head
let firstPopulation = firstRow.Population
let firstProfit = firstRow.Profit

我从F#interactive中收到错误:

  

错误FS0039:未定义字段,构造函数或成员“Population”

这对我来说似乎很困惑,因为VS中的intellisense通过CSV类型提供程序从我的数据中获取此列没有任何问题。

另外,我尝试使用相同类型的提供程序创建一个程序,一切正常。像这样:

open FSharp.Data

[<EntryPoint>]
let main argv = 
    use file = System.IO.File.CreateText("result.txt")
    let csv = new CsvProvider<"cities.csv">()
    for record in csv.Data do
        fprintfn file "%A" record.Population
    0

我错过了什么吗?谢谢你的回答。

1 个答案:

答案 0 :(得分:0)

试试此代码

let Cities = new CsvProvider<"cities.csv">()
let cities = new Cities()
let firstRow = cities.Rows |> Seq.head