elixir具有管道运算符的多个参数
我试图加载一个非常大的JSON文件并将其绑定到一个变量,下面是我失败的代码elixir具有管道运算符的多个参数,elixir,Elixir,我试图加载一个非常大的JSON文件并将其绑定到一个变量,下面是我失败的代码 deps = File.open("../DepMap.json") |> IO.read(:all) |> JSX.decode 我要回来了 ** (FunctionClauseError) no function clause matching in :io.request/2 (stdlib) io.erl:556: :io.request({:error, :enoent}, {:
deps = File.open("../DepMap.json")
|> IO.read(:all)
|> JSX.decode
我要回来了
** (FunctionClauseError) no function clause matching in :io.request/2
(stdlib) io.erl:556: :io.request({:error, :enoent}, {:get_line, :unicode, ""})
(elixir) lib/io.ex:82: IO.do_read_all/2
lib/depchecker.ex:6: (module)
(stdlib) erl_eval.erl:670: :erl_eval.do_apply/6
我错过了什么?我假设File.open的结果作为第一个参数传递给IO.read(:all),但这是这里的失败点,我不确定如何纠正
File.open
返回{:ok,pid}
或{:error,reason}
。第二个是在失败的情况下。这里您得到的是{:error,:enoint}
意味着文件不存在-您可能需要找出那里的路径有什么问题
您可能还想使用文件的bang版本。在管道中打开:
deps = File.open!("../DepMap.json")
|> IO.read(:all)
|> JSX.decode
此操作类似于File.open
,但会引发异常而不是返回错误值。成功时,它只返回表示文件的pid
,这是IO.read
调用所需的。文件。open
返回{:ok,pid}
或{:error,reason}
。第二个是在失败的情况下。这里您得到的是{:error,:enoint}
意味着文件不存在-您可能需要找出那里的路径有什么问题
您可能还想使用文件的bang版本。在管道中打开:
deps = File.open!("../DepMap.json")
|> IO.read(:all)
|> JSX.decode
此操作类似于File.open
,但会引发异常而不是返回错误值。成功时,虽然它只返回表示文件的pid
,这是IO.read
调用所需的。谢谢,我解析了我的路径,然后使用bang更正了我的其他错误。谢谢,我解析了我的路径,然后使用bang更正了我的其他错误。