SAS:使用API​​

时间:2016-11-30 07:18:14

标签: api sas openweathermap

我需要使用他们的API和SAS系统连接到OpenWeatherMap。可以使用以下地址调用API:api.openweathermap.org/data/2.5/weather?q=London,uk&APPID=XXXXXXXXXXXXX

我使用以下方式连接到另一个API:

filename dst url 'http://api.statbank.dk/v1/data/AUS08/CSV?OMR%C3%85DE=*&SAESONFAK=*&Tid=*';

data AUS08_0;
        infile dst dlm=';' encoding="ANY";
        format område $50. SAESONFAK $50. Tid $50. SAESONFAK $50.  indhold $50.;
        input Område SAESONFAK tid  indhold;
run;

我因此认为我可以使用类似的代码,但没有任何运气。 API调用的输出由:

给出
  

{ “坐标”:{ “LON”: - 0.13, “LAT”:51.51}, “天气”:[{ “ID”:701, “主”: “雾”, “描述”: “雾” “图标”: “50N”}], “基”: “站”, “主”:{ “温度”:271.31, “压力”:1033, “湿度”:64, “temp_min”:268.15,“temp_max “:274.15},” 可见性 “:10000,” 风 “:{” 速度 “:1.5,” DEG “:110},” 云 “:{” 所有 “:0},” DT “:1480447200,” SYS” :{ “类型”:1, “ID”:5088, “消息”:0.0031, “国家”: “GB”, “日出”:1480405363, “日落”:1480434929}, “ID”:2643743, “姓名” : “伦敦”, “鳕鱼”:200}

有人可以帮我吗?

1 个答案:

答案 0 :(得分:3)

看起来它返回一个JSON文件,而不是分隔的文本文件。您需要解析JSON文件。

根据您的SAS版本,您有多种选择。

如果您有9.4 TS1M4(截至撰写时的当前版本),则会有一个新创建的JSON libname(我没有经验,但文档here中提到了它) 。

如果你有9.4 TS1M3,你可以使用DS2 built-in JSON package来读取PROC DS2中的JSON文件。

如果您有9.3+,可以使用PROC GROOVY使用GROOVY语言对其进行解析,该语言具有内置的JSON解析选项。

使用任何版本,您始终可以对文件进行解析,因为它是一个相当简单的解析文件,尽管嵌套数据结构存在一些复杂性。

有关最后两个的示例,请参阅this question and answers

如果您执行前三个选项之一,您还可以考虑使用PROC HTTP将结果检索到文件而不是数据步骤。