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ファイルを読み込んだ例で、もちろん中身の定義で見え方は異なります。

0 件のコメント :

コメントを投稿