我正在尝试将CSV文件读取到Prolog知识库中。下面是代码:
:- use_module(library(csv)).
:- my_csv_read('../UserWeightings/userWeighting_dummy_25Oct2018.csv').
my_csv_read(F):-
csv_read_file(F,Data,[functor(weighting),strip(true)]),
maplist(assertz,Data).
我的CSV文件只有两列。第1列是URI,第2列是数字(代表该URI的权重)。该文件如下所示:
'http://test/weightings#Red', 0.5
'http://test/weightings#Yellow', 0.3
'http://test/weightings#Green', 0.8
'http://test/weightings#Black', 1.2
'http://test/weightings#White', 2
运行代码时,出现以下错误:
ERROR: m:/{file path and line number}
Domain error: `row_arity(2)' expected, found `1'
Warning: m:/{path and line number}
Goal (directive) failed: user:my_csv_read('../UserWeightings/userWeighting_dummy_25Oct2018.csv')
有人知道为什么它只读取一列吗?非常感谢!
答案 0 :(得分:1)
想通了。问题是因为CSV文件包含两个额外的空行。真傻因此,确保源文件完全正确非常重要。
答案 1 :(得分:0)
在我的情况下-我的第一列为空