我不断收到此错误:
############################错误堆栈跟踪###################### ### 预期输入结束 线路:0 周围:...11092×16 DataFrame 行...
但是当我在单独的终端中运行代码(不包括路由)时,它运行得很好,返回证券符号的 DataFrame 以及有关它们的一些信息。
我做错了什么? (请注意,此处发布的api密钥是可发布密钥,只能访问免费数据。)
using Genie, Genie.Renderer.Json, Genie.Requests
using HTTP, JSON
using DataFrames
route("/tickers", method = POST) do
message = jsonpayload()
# (:echo => (message["message"] * " ") ^ message["repeat"]) |> json
syms = HTTP.request("GET","https://acre.iex.cloud/v1/data/CORE/REF_DATA?token=pk_79891f5cbcce4099ae063588956f937a")
schema_req = HTTP.request("GET","https://acre.iex.cloud/v1/data/CORE/REF_DATA?schema=true&token=pk_79891f5cbcce4099ae063588956f937a")
sbs = syms.body |> String |> JSON.parse
smat = sbs .|> values .|> collect |> (x->reduce(hcat,x)) |> (x->permutedims(DataFrame(x,:auto)))
schema = schema_req.body |> String |> JSON.parse |> first |> keys |> collect
rename!(smat,Symbol.(schema))
end
route("/send") do
response = HTTP.request("POST", "http://localhost:8000/tickers", [("Content-Type", "application/json")], """{"exchanges":"XNYS", "type":"cs"}""")
response.body |> String |> JSON.parse
end
up(async = false)
最终,我希望“/tickers”路由成为 API 后端,并且
/send
路由存在于桌面应用程序中(不一定作为网页),因此无需严重依赖格式化 /send
路由即可进行回答非常欢迎。
谢谢!
我发现同时导入
JSON
和Genie.Renderer.Json
会重载json
这个名字,而且我需要使用Genie的json解析方法来解析response.body
,所以我需要将json
指定为Genie.Renderer.Json.json
。
因此
/send
路线应如下所示:
route("/send") do
response = HTTP.request("POST", "http://localhost:8000/tickers", [("Content-Type", "application/json")], """{"exchanges":"XNYS", "type":"cs"}""")
response.body |> String |> Genie.Renderer.Json.json
end
输出看起来真的很难看,所以我想要一种方法来改变它。