2016-11-30 59 views
1

我需要使用他們的API和SAS系統連接到OpenWeatherMap。SAS:使用API​​連接到OpenWeatherMap

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可以使用以下ADRESS api.openweathermap.org/data/2.5/weather?q=London,uk & APPID = XXXXXXXXXXXXX

我已經使用ealier連接到另一API調用我因此認爲我可以使用類似的代碼,但沒有任何運氣。 API調用的輸出由下式給出:

{「coord」:{「lon」: - 0.13,「lat」:51.51},「weather」:[{「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,」name「:」London「,」cod「:200}

有人可以幫我嗎?

回答

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將結果檢索到文件而不是數據步驟。

+0

謝謝你的回答。 如果我只能將它放入SAS系統中,我可以輕鬆地對文件進行文本解析。我運行SAS 9.2 atm,所以我想要一種老式的方法將數據轉換爲字符串。 –