すごい広島オンライン6 with eiel
Google Spreadsheetのデータjuliaでとって使いたい
それっぽいモジュールが見つからない…
話題はある。
PyCallつかえばいいのでは?
export URL叩いてつかうほうが早いのでは?
curlでとろうとすると認証してないので弾かれる
code: julia
using Pkg
Pkg.add("HTTP")
Pkg.add("CSV")
Pkg.add("DataFrames")
using HTTP
using CSV
using DataFrames
function r(url)
let ret
HTTP.open("GET", url) do http
io = IOBuffer(read(http, String));
ret = CSV.File(io)
@show ret
end
return ret
end
end
r(url) |> DataFrame
code: text
63×13 DataFrame. Omitted printing of 6 columns
│ Row │ 日付 │ 年 │ 心臓単独 │ 心肺同時 │ 肺単独 │ 肝臓単独 │ 肝腎同時 │
│ │ Int64⍰ │ Int64⍰ │ Int64⍰ │ Int64⍰ │ Int64⍰ │ Int64⍰ │ Int64⍰ │
├─────┼────────┼────────┼──────────┼──────────┼─────────┼──────────┼──────────┤
│ 1 │ 201801 │ 2018 │ 6 │ 0 │ 6 │ 6 │ 1 │
│ 2 │ 201802 │ 2018 │ 5 │ 0 │ 7 │ 6 │ 0 │
│ 3 │ 201803 │ 2018 │ 3 │ 0 │ 3 │ 1 │ 1 │
│ 4 │ 201804 │ 2018 │ 5 │ 0 │ 5 │ 5 │ 0 │
│ 5 │ 201805 │ 2018 │ 3 │ 0 │ 4 │ 1 │ 0 │
│ 6 │ 201806 │ 2018 │ 4 │ 0 │ 3 │ 5 │ 0 │
│ 7 │ 201807 │ 2018 │ 3 │ 0 │ 4 │ 4 │ 0 │
⋮
│ 256 │ 199705 │ 1997 │ missing │ missing │ missing │ missing │ missing │
│ 257 │ 199706 │ 1997 │ missing │ missing │ missing │ missing │ missing │
│ 258 │ 199707 │ 1997 │ missing │ missing │ missing │ missing │ missing │
│ 259 │ 199708 │ 1997 │ missing │ missing │ missing │ missing │ missing │
│ 260 │ 199709 │ 1997 │ missing │ missing │ missing │ missing │ missing │
│ 261 │ 199710 │ 1997 │ 0 │ missing │ missing │ 0 │ missing │
│ 262 │ 199711 │ 1997 │ 0 │ missing │ missing │ 0 │ missing │
│ 263 │ 199712 │ 1997 │ 0 │ missing │ missing │ 0 │ missing │
IOBuffer経由するとCSV.fileがつかえたのでとりあえずそうしてみてるだけ。
リファクタリングした
code: julia
using HTTP
using CSV
using DataFrames
function parseURI(uri::HTTP.URI)
documentID = split(uri.path, "/")4 fragmentparams = uri.fragment |> HTTP.queryparams
(documentID, fragmentparams"gid") end
function exportURI((documentID, gid))
end
function openURL(url::String)
let str
HTTP.open("GET", url) do http
str = read(http, String)
end
str
end
end
function GSOpen(url::String)
HTTP.URL(url)
|> parseURI
|> exportURI
|> openURI
|> IOBuffer
|> CSV.File
|> DataFrame
end
GSOpen(url)