Mar*_*cky 5 f# f#-interactive type-providers 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
Run Code Online (Sandbox Code Playgroud)
我收到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
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?谢谢你的回答.
试试这个代码
let Cities = new CsvProvider<"cities.csv">()
let cities = new Cities()
let firstRow = cities.Rows |> Seq.head
Run Code Online (Sandbox Code Playgroud)