我知道OCaml中存在Csv
包,但据我所知,它不能让我加载像dictionares流一样的csv文件(因为DictReader
允许我用Python做的。)
有没有办法将这些文件作为字典流阅读?
答案 0 :(得分:4)
Python中的Streams是Python的抽象迭代方式。另一方面,它们只是具有__next__
方法的对象。您提到的Csv
模块提供的值next
的行为方式完全相同。此外,该模块定义了一些更具体的迭代器,如fold_left
和iter
。因此,很容易迭代csv
行(如string list
)并将Csv.in_channel
包装到一个对象中,其签名和行为与{{1}的Python流大致相同行。
仍然需要将这些行转换为字典。这只是将行到词典转换器映射到迭代器或流的问题。