カテゴリー
CurlとJqを使ってgithubレポジトリ上のcsvデータを取得する 〜 株価日足編
※ 当ページには【広告/PR】を含む場合があります。
2021/03/23
Curlで生csvを取得
$ curl -sS https://raw.githubusercontent.com/[ユーザー名]/[レポジトリ名]/[ブランチ名]/[ファイルまでのパス]
-s
-S
man curl
1001.csv
$ curl -sS https://raw.githubusercontent.com/tacoskingdom/commonBlogMaterial/main/deep-tacopots/1001.csv
2020-01-06,23319,23365,23148,23205,1219710000
2020-01-07,23320,23577,23299,23576,1157950000
#....
2021-03-22,29444,29472,29107,29174,1384260000
日付,始値,高値,低値,終値,出来高
Jqでレスポンスの整形処理
jq インストール
$ cat [csv形式のテキスト] | jq -sR '
#👇配列化のために[...]でラップ
[
#👇改行位置でテキストを分割し、分割した要素で配列に変換
split("\n")[]
#👇要素が空文字の場合には除外
| select(length > 0)
#👇要素のテキストをさらにコンマ切りで配列に変換
| split(",")
]
#👇mapで配列の要素(の配列)をjson要素に変換
| map({"A": .[0], "B": .[1], "C": .[2]})
'
$ curl -sS https://raw.githubusercontent.com/tacoskingdom/commonBlogMaterial/main/deep-tacopots/1001.csv | jq -sR '
[ split("\n")[] | select(length > 0) | split(",") ]
| map({"日付": .[0], "初値": .[1], "高値": .[2], "低値": .[3], "終値": .[4], "出来高": .[5]})
'
#👇出力
[
#...中略
{
"日付": "2021-03-22",
"初値": "29444",
"高値": "29472",
"低値": "29107",
"終値": "29174",
"出来高": "1384260000"
}
]
まとめ
記事を書いた人
ナンデモ系エンジニア
主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。
カテゴリー