我尝试解析csv文件并从每行中提取特定的coloumn数据,我设法将文件解析为记录列表,但我无法迭代每个记录的字段。 他们是使用prolog解析csv文件的方法,以便csv文件的每个记录本身都是一个列表吗?
我的代码:
:- use_module(library(csv)).
% main function , first parse the file then extracts max total market
get_rows_data(File,Rows) :-
csv_read_file(File, Rows, [functor(record), arity(18)]),
maplist(assert, Rows),
get_row(Rows).
get_row([]).
get_row([Head|Tail]) :-
write('*********************************'),write(Head),
get_row(Tail).
答案 0 :(得分:1)
我会说你几乎就在那里。您只需将记录术语转换为列表。
:- use_module(library(apply)).
:- use_module(library(csv)).
get_rows_data(File, Lists):-
csv_read_file(File, Rows, []),
rows_to_lists(Rows, Lists).
rows_to_lists(Rows, Lists):-
maplist(row_to_list, Rows, Lists).
row_to_list(Row, List):-
Row =.. [row|List].