首页 文章

SAS:使用API连接到OpenWeatherMap

提问于
浏览
1

我需要使用他们的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调用的输出由下式给出:

{“coord”:{“lon”: - 0.13,“lat”:51.51},“weather”:[{“id”:701,“main”:“Mist”,“description”:“mist”,“图标 “:” 50N “}],” 基 “:” 站”, “主”:{ “温度”:271.31, “压力”:1033, “湿度”:64, “temp_min”:268.15, “temp_max”: 274.15}, “可见性”:10000, “风”:{ “速度”:1.5, “DEG”:110}, “ Cloud ”:{ “所有”:0}, “DT”:1480447200, “SYS”:{ “类型”:1, “ID”:5088, “消息”:0.0031, “国”: “国标”, “日出”:1480405363, “夕阳”:1480434929}, “ID”:2643743, “名”:”伦敦”, “鳕鱼”:200}

有人可以帮我吗?

1 回答

  • 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 将结果检索到文件而不是数据步骤 .

相关问题