【问题标题】:SAS: Connect to OpenWeatherMap using APISAS:使用 API 连接到 OpenWeatherMap
【发布时间】:2017-04-14 10:15:33
【问题描述】:

我需要使用他们的 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" ,"icon":"50n"}],"base":"stations","main":{"temp":271.31,"pressure":1033,"湿度":64,"temp_min":268.15,"temp_max ":274.15},"visibility":10000,"wind":{"speed":1.5,"deg":110},"clouds":{"all":0},"dt":1480447200,"sys" :{"type":1,"id":5088,"message":0.0031,"country":"GB","sunrise":1480405363,"sunset":1480434929},"id":2643743,"name" :"伦敦","鳕鱼":200}

有人可以帮我吗?

【问题讨论】:

    标签: api sas openweathermap


    【解决方案1】:

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

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

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

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

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

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

    请参阅this question and answers 了解最后两个的示例。

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

    【讨论】:

    • 感谢您的回答。如果我只能将文件输入到 SAS 系统中,我可以轻松地对文件进行文本解析。我正在运行 SAS 9.2 atm,所以我想要一种老式的方法来将数据转换为字符串。
    猜你喜欢
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-23
    • 2020-11-15
    • 1970-01-01
    • 2015-12-12
    相关资源
    最近更新 更多