Elixir : 구조화 된 데이터 요소를 표시하는 방법은 무엇입니까?

귀 차드 루카스

CSV 파일을 구문 분석하려고합니다. 실제로이 코드가 있습니다.

alias NimbleCSV.RFC4180, as: CSV

defmodule Siren do
  def parseCSV do
    IO.puts("Let's parse CSV file!")

    stream = File.stream!("name.csv")
    original_line = CSV.parse_stream(stream)
    filter_line = Stream.filter(original_line, fn
      ["JeremyGuthrie" | _] -> true
      _ -> false
    end)
    map = Stream.map(filter_line,
    fn [name, team, position, height, weight, age] ->
      %{name: name, team: team, position: position,
      height: String.to_integer(height),
      weight: String.to_integer(weight),
      age: Float.parse(age) |> elem(0)
      }
    end)
  end
end

내 견해에 따르면 내 name.csv 파일의 각 줄을 처리하는 스트림을 작성합니다. NimbleCSV 라이브러리를 사용하여이 줄을 구문 분석하고 헤더 줄을 피합니다. 그런 다음 JeremyGuthrie에 해당하는 줄만 유지하도록 각 줄을 필터링합니다. 마지막으로 라인 요소를 구조화 된 데이터 맵에 저장합니다. 하지만 이제 필터 라인의 이름 만 인쇄하는 방법은 여기 JeremyGuthrie입니다.

그리고 다른 질문이 있습니다 . 나이, 키, 몸무게와 같은 숫자에 따라 스트림을 필터링하는 데 문제가 있습니다.

Aleksei의 조언을 다른 코드와 함께 적용합니다.

NimbleCSV.define(MyParser, separator: ";", escape: "\"")

defmodule Siren do
  def parseCSV do
    IO.puts("Let's parse CSV file!")

    "ActeursEOF.csv"
    |> File.stream!()
    |> MyParser.parse_stream()
    |> Stream.filter(fn
      ["RAZEL BEC" | _] -> true
      ["" | _] -> false
      _ -> false
    end)
    |> Stream.map(fn [name, description, enr_competences] ->
      %{name: name, description: description, enr_competences: enr_competences}
    end)
    |> Enum.to_list()
    |> IO.inspect()
  end
end

내 출력 :

Compiling 1 file (.ex)
Let's parse CSV file!
[%{description: "Génie Civil", enr_competences: "Oui", name: "RAZEL BEC"}]

그러나 이제이 주제를 끝내기 위해 예를 들어 설명에 액세스하여 저장하겠습니다. 그 방법을 모르겠습니다. 마지막으로이 데이터를 표시합니다.

알렉세이 마티 우 쉬킨

중간 변수를 생성하는 단계에서, 중복 우리가 Kernel.|>/2파이프 다음 함수의 첫 번째 인수 기능 '을 출력 일명 관 연산자.

"name.csv"
|> File.stream!()
|> CSV.parse_stream()
|> Stream.filter(fn
  ["JeremyGuthrie" | _] -> true
  _ -> false
end)
|> Stream.map(fn
  [name, team, position, height, weight, age] ->
    %{name: name, team: team, position: position,
      height: String.to_integer(height),
      weight: String.to_integer(weight),
      age: Float.parse(age) |> elem(0)
    }
end)
|> Enum.to_list() # THIS

체인의 마지막 줄에 유의하십시오. 결과를 검색하려면 스트림을 종료 해야합니다. 종료가 발생할 때까지 느리게 구성되지만 전혀 평가되지 않습니다. 예를 들어 무한 스트림을 생성하고 운영 할 수 있습니다.

Enum모듈의 욕심 많은 함수는 Enum.take/2, 또는 위에서 지적했듯이 Enum.to_list/1.


참고로 나중에 완전히 익숙하다고 느낄 때 매핑을 병렬화 하는 Flow대신 사용할 수 있습니다 Stream. 지금은 (그리고 비교적 작은 파일의 경우) Stream충분합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

평면화 된 데이터를 구조화 된 JSON으로 변환하는 방법은 무엇입니까?

분류에서Dev

조명기에서 구조화 된 데이터를 반환하는 올바른 방법은 무엇입니까?

분류에서Dev

녹아웃을 사용하여 데이터 테이블에서 변경된 요소를 강조 표시 / 표시하는 방법은 무엇입니까?

분류에서Dev

mySQL / PHP를 사용하여 데이터베이스에서 구조화 된 정보를 표시하는 방법은 무엇입니까?

분류에서Dev

Spark에서 구조화 된 데이터를 schemaRDD에 매핑하는 방법은 무엇입니까?

분류에서Dev

Plotly : 데이터 프레임에서 그룹화 된 텍스트 요소를 여러 줄로 된 hoverinfos로 표시하는 방법은 무엇입니까?

분류에서Dev

표로 작성된 데이터 구조를 감지하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

Vue 구성 요소로 전송 된 데이터를 유형 확인하는 방법은 무엇입니까?

분류에서Dev

Plotly : 코드화 된 데이터를 그래프에 표시하는 방법은 무엇입니까?

분류에서Dev

ASP.NET MVC Razor에서 그룹화 된 데이터를 표시하는 방법은 무엇입니까?

분류에서Dev

복구 된 모든 데이터를 가져오고 표시하는 방법은 무엇입니까?

분류에서Dev

Firebase에서 데이터를 구조화하는 방법은 무엇입니까?

분류에서Dev

Firebase에서 데이터를 구조화하는 방법은 무엇입니까?

분류에서Dev

이 구조화되지 않은 데이터를 구조화로 변환하는 방법은 무엇입니까?

분류에서Dev

직렬화 된 데이터로 구성된 배열을 표시하는 방법은 무엇입니까?

분류에서Dev

세로로 나열된 판매와 유사한 데이터를 Excel에서 더 잘 시각화 된 표로 재구성하는 방법은 무엇입니까?

분류에서Dev

강조 표시된 단어를 가져와 데이터 속성으로 새 요소로 감싸는 방법은 무엇입니까?

분류에서Dev

데이터가 변경된 후 구성 요소를 한 번만 다시 렌더링하는 방법은 무엇입니까?

분류에서Dev

Google 구조화 된 데이터에 대해 ISO 8601에서 totalTime 매개 변수를 사용하는 방법은 무엇입니까?

분류에서Dev

표처럼 보이도록 표시된 데이터를 정렬하는 방법은 무엇입니까?

분류에서Dev

업데이트 된 데이터를 특정 요소에 배치하는 방법은 무엇입니까?

분류에서Dev

WebDriver를 사용하여 웹 페이지에서 강조 표시된 요소를 찾는 방법은 무엇입니까?

분류에서Dev

강조 표시된 여러 HTML contenteditable 요소를 제거하는 방법은 무엇입니까?

분류에서Dev

RecycleView로 계층 적 데이터 구조를 표시하는 방법은 무엇입니까?

분류에서Dev

Excel : 조건부 서식을 사용하여 누락 된 데이터를 강조 표시하는 방법은 무엇입니까?

분류에서Dev

C ++로 구조화하기 위해 데이터베이스를로드하는 방법은 무엇입니까?

분류에서Dev

양식에 입력 된 데이터를 다른 파일에 표시하는 방법은 무엇입니까?

분류에서Dev

이미 장착 된 구성 요소의 데이터를 변경하는 올바른 방법은 무엇입니까?

분류에서Dev

Vuex에 작업이 발송 된 후 구성 요소에 데이터를 전달하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    평면화 된 데이터를 구조화 된 JSON으로 변환하는 방법은 무엇입니까?

  2. 2

    조명기에서 구조화 된 데이터를 반환하는 올바른 방법은 무엇입니까?

  3. 3

    녹아웃을 사용하여 데이터 테이블에서 변경된 요소를 강조 표시 / 표시하는 방법은 무엇입니까?

  4. 4

    mySQL / PHP를 사용하여 데이터베이스에서 구조화 된 정보를 표시하는 방법은 무엇입니까?

  5. 5

    Spark에서 구조화 된 데이터를 schemaRDD에 매핑하는 방법은 무엇입니까?

  6. 6

    Plotly : 데이터 프레임에서 그룹화 된 텍스트 요소를 여러 줄로 된 hoverinfos로 표시하는 방법은 무엇입니까?

  7. 7

    표로 작성된 데이터 구조를 감지하는 가장 좋은 방법은 무엇입니까?

  8. 8

    Vue 구성 요소로 전송 된 데이터를 유형 확인하는 방법은 무엇입니까?

  9. 9

    Plotly : 코드화 된 데이터를 그래프에 표시하는 방법은 무엇입니까?

  10. 10

    ASP.NET MVC Razor에서 그룹화 된 데이터를 표시하는 방법은 무엇입니까?

  11. 11

    복구 된 모든 데이터를 가져오고 표시하는 방법은 무엇입니까?

  12. 12

    Firebase에서 데이터를 구조화하는 방법은 무엇입니까?

  13. 13

    Firebase에서 데이터를 구조화하는 방법은 무엇입니까?

  14. 14

    이 구조화되지 않은 데이터를 구조화로 변환하는 방법은 무엇입니까?

  15. 15

    직렬화 된 데이터로 구성된 배열을 표시하는 방법은 무엇입니까?

  16. 16

    세로로 나열된 판매와 유사한 데이터를 Excel에서 더 잘 시각화 된 표로 재구성하는 방법은 무엇입니까?

  17. 17

    강조 표시된 단어를 가져와 데이터 속성으로 새 요소로 감싸는 방법은 무엇입니까?

  18. 18

    데이터가 변경된 후 구성 요소를 한 번만 다시 렌더링하는 방법은 무엇입니까?

  19. 19

    Google 구조화 된 데이터에 대해 ISO 8601에서 totalTime 매개 변수를 사용하는 방법은 무엇입니까?

  20. 20

    표처럼 보이도록 표시된 데이터를 정렬하는 방법은 무엇입니까?

  21. 21

    업데이트 된 데이터를 특정 요소에 배치하는 방법은 무엇입니까?

  22. 22

    WebDriver를 사용하여 웹 페이지에서 강조 표시된 요소를 찾는 방법은 무엇입니까?

  23. 23

    강조 표시된 여러 HTML contenteditable 요소를 제거하는 방법은 무엇입니까?

  24. 24

    RecycleView로 계층 적 데이터 구조를 표시하는 방법은 무엇입니까?

  25. 25

    Excel : 조건부 서식을 사용하여 누락 된 데이터를 강조 표시하는 방법은 무엇입니까?

  26. 26

    C ++로 구조화하기 위해 데이터베이스를로드하는 방법은 무엇입니까?

  27. 27

    양식에 입력 된 데이터를 다른 파일에 표시하는 방법은 무엇입니까?

  28. 28

    이미 장착 된 구성 요소의 데이터를 변경하는 올바른 방법은 무엇입니까?

  29. 29

    Vuex에 작업이 발송 된 후 구성 요소에 데이터를 전달하는 방법은 무엇입니까?

뜨겁다태그

보관