Vì vậy, giả sử tôi có tệp CSV có tiêu đề chứa cột Dân số và Lợi nhuận và tôi muốn làm việc với cột trong tương tác F #. Tôi có đoạn mã sau:Nhà cung cấp loại CSV không thể tìm thấy cột trong F # tương tác
#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
tôi nhận được một lỗi từ F # tương tác:
lỗi FS0039: Các lĩnh vực, xây dựng hoặc thành viên 'Dân' không được định nghĩa
Điều này có vẻ gây nhầm lẫn cho tôi, bởi vì intellisense trong VS không có vấn đề chọn lên cột này từ dữ liệu của tôi thông qua một nhà cung cấp loại CSV.
Ngoài ra, tôi đã thử tạo một chương trình với cùng một nhà cung cấp loại và tất cả đều hoạt động tốt. Như thế này:
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
Tôi có thiếu gì đó không? Cảm ơn mọi câu trả lời.
Bạn có thể thử sử dụng đường dẫn đầy đủ đến tệp CSV? (Đôi khi F # Interactive bị lẫn lộn về đường dẫn ...) –
Điều đó thật kỳ lạ. Bạn có chắc chắn rằng bạn đã gửi tất cả các dòng để fsi? Tôi chỉ thử một cái gì đó tương tự như nó đã làm việc. Bạn đang sử dụng phiên bản VS nào? –
Nếu có sự cố với đường dẫn, nó sẽ đưa ra lỗi rõ ràng, trừ khi thay đổi có thành phố.csv ở một nơi khác mà không có cột Dân số –