我正在尝试解析JSON文件并将数据存储在SAS数据集中以下是JSON文件的示例。
现在我只是尝试解析S数组作为初始步骤。它有2个对象,因此输出SAS数据集(最终目标是创建哈希表)将有2个观察结果,如下所示。
1 14162 E NG 1455209 98
2 14163 EN NGG 1455210 784
这是我尝试的代码....但没有得到任何行。由于DS2是SAS 9.4M3的新功能,我也找不到太多文档。我想"do while (j.ISRIGHTBRACE(tokenType));"
出了问题,但不确定。
proc ds2;
data Snaps (overwrite=yes);
dcl package json j();
dcl nvarchar(30) Key value;
dcl varchar(1000000) character set utf8 response;
dcl int rc;
dcl package http webQuery();
dcl int rc tokenType parseFlags;
dcl nvarchar(128) token;
dcl integer i rc;
drop response rc;
retain i 0;
method init();
webQuery.createGetMethod('http://XXXXXXXX.com:9090/query?Date=20160211');
webQuery.executeMethod();
webQuery.getResponseBodyAsString(response, rc);
rc = j.createParser( response );
do while (rc = 0);
i=i+1;
j.getNextToken( rc, token, tokenType, parseFlags);
put token=;
if lowcase(strip(token)) = 'shots' then do;
put 'inside shots =-----------------------------------------';
j.getNextToken( rc, token, tokenType, parseFlags);
put '--------------------ARRAY---------------------' token=;
if j.ISLEFTBRACKET(tokenType) then do; *Entered in to an Array;
j.getNextToken( rc, token, tokenType, parseFlags);
put '------------------OBJECT-----------------------' token=;
if j.ISLEFTBRACE(tokenType) then do;*Entered in to an Object;
do while (j.ISRIGHTBRACE(tokenType));
j.getNextToken( rc, token, tokenType, parseFlags);
put '------------------KEY-----------------------' token=;
if j.ISSTRING(tokenType) then do;
Key=token;
j.getNextToken( rc, token, tokenType, parseFlags);
put '---------------------VALUE--------------------' token=;
Value=token;
Output;
end;
end;
end;
end;
end;
if i > 100 then stop;
end;
end; * method init;
method term();
rc = j.destroyParser();
end;
enddata;
run;
quit;
感谢.........
答案 0 :(得分:2)
我正在尝试解析JSON文件并将数据存储在SAS数据集
中
像现在任何优秀的分析师一样,用您首选的处理语言读取数据是很关键的,但并不总是考虑一个维度。我的答案是使用Python将JSON文件转换为更简单的SAS格式,然后转换为数据集,例如CSV文件。
从这篇reddit帖子https://www.reddit.com/r/Python/comments/2l3fx9/converting_json_to_csv/
中获取提示取决于您的平台,但有类似的内容
在命令行类型'python'。如果已安装,请转到3.否则
从https://www.python.org/downloads/
下载并安装python 2.7您可能需要安装pip,运行“python get-pip.py” (http://docs.python-guide.org/en/latest/starting/install/win/)
在终端(按照他们的说明)输入:$ pip install -e
现在在终端类型(根据他们的指示):python json_to_csv_converter.py yelp_academic_dataset.json
文件yelp_academic_dataset.json需要在您当前 位置。
在这里,您可以使用您的JSON文件名更改yelp_academic_dataset.json。