2021年11月26日金曜日

JSONのファイルをPROC HTTPで読み込む

SASでJSONのファイルを読み込むのは面倒かと思っていましたが、JSONエンジンとAUTOMAPオプションを使うと簡単にデータセットとして中身を見ることが出来ます。とりあえず読み込んでから中味を確認して、あとは用途に合わせて表形式に加工します。この例はViyaのジョブフローのスケジューリングの情報を取ってきます。
/* ジョブスケジューリングのJSONファイルとマップのファイルを定義 */
filename folders temp;
filename jsonmap temp;

/* JSONファイルを取得 */
proc http 
		url="https://henteko.azure.com/jobFlowScheduling/flows" 
		out=flows oauth_bearer=sas_services;
	headers 'Accept'='application/vnd.sas.collection+json';
run;

/* JSONファイルの先頭をログに出力して確認するだけ */
data _null_;
	infile flows;
	length buf $4096;
	input buf 1-4096;
	put _all_;
run;

/* JSONエンジンで読み込ませて、マップは生成 */
libname flows json fileref=folders map=jsonmap automap=replace;

/* 後はライブラリ参照名から要素と中身を見る */
proc print data=flows.items;
run;
自分でマップファイルを作らなくても、JSONエンジン任せで構造を読み解いて参照できるのはすごく楽です。下はJSONファイルを読み込んだ例で、もちろん中身の定義で見え方は異なります。

2021年11月14日日曜日

HHKB キーマップを vi に近づけて設定

去年ぐらいから英語版のキーボードを使っている。
  • FILCO Majestouchを10年超使う
  • Mistel BAROCCO MD770 で英語版で左右分離を8か月ぐらい
  • HHKB Professional 日本語 思った以上にキーが多くて使いこなせず 1週間で諦め
  • HHKB Professional Hybridが現在
vi歴は20年以上なので、キーマップを変更してHJKLにカーソルキーを映した。通常は左側にあるWindowsキーを右側にCommandを左側に移している。スラッシュとバックスラッシュの位置はまだ調整の余地あり。本当はX+Commandで1文字削除したかったが、HHKBの仕様で割り当てできない。代わりにD+Commandにしたがこれが思ったよりも使いやすい。左手で2つのキーを同時に押しやすいから。