DataMorph v0.0.6 DataMorph.Csv
Functions for converting enumerable, or string of CSV to stream of rows.
Summary
Functions
Parse csv
string, stream, or enumerable to stream of rows
Functions
Parse csv
string, stream, or enumerable to stream of rows.
Examples
Convert blank string to empty headers and empty stream.
iex> {headers, rows} = DataMorph.Csv.to_headers_and_rows_stream("")
...> rows
...> |> Enum.to_list
[]
...> headers
[]
Map a string of lines separated by \n to headers, and a stream of rows as lists:
iex> {headers, rows} = "name,iso\n" <>
...> "New Zealand,nz\n" <>
...> "United Kingdom,gb"
...> |> DataMorph.Csv.to_headers_and_rows_stream
...> rows
...> |> Enum.to_list
[
["New Zealand","nz"],
["United Kingdom","gb"]
]
...> headers
["name","iso"]
Map a stream of lines separated by \n to headers, and a stream of rows as lists:
iex> {headers, rows} = "name,iso\n" <>
...> "New Zealand,nz\n" <>
...> "United Kingdom,gb"
...> |> String.split("\n")
...> |> Stream.map(& &1)
...> |> DataMorph.Csv.to_headers_and_rows_stream
...> rows
...> |> Enum.to_list
[
["New Zealand","nz"],
["United Kingdom","gb"]
]
...> headers
["name","iso"]
Map a string of tab-separated lines separated by \n to headers, and a stream of rows as lists:
iex> {headers, rows} = "name\tiso\n" <>
...> "New Zealand\tnz\n" <>
...> "United Kingdom\tgb"
...> |> DataMorph.Csv.to_headers_and_rows_stream(separator: ?\t)
...> rows
...> |> Enum.to_list
[
["New Zealand","nz"],
["United Kingdom","gb"]
]
...> headers
["name","iso"]