当前位置: 首页 > 知识库问答 >
问题:

SAS:使用API连接到OpenWeatherMap

毕浩渺
2023-03-14

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

我已经使用以下方法连接到另一个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,“humidity”: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}

任何人都可以在这里帮助我吗?

共有1个答案

后源
2023-03-14

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

根据您的SAS版本,您有几个选项。

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

如果你有9.4 TS1M3,可以使用DS2内置的JSON包来读取PROC DS2中的JSON文件。

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

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

关于后两个问题的示例,请参阅此问题和答案。

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

 类似资料:
  • 我需要使用SAS令牌连接到Azure服务总线(生成并连接)。 我没有看到任何关于python实现的东西。 此链接提供Eventhubs的实现- https://docs.microsoft.com/en-us/rest/api/eventhub/generate-sas-token#python 不确定在哪里可以找到servicebus的python实现。

  • 问题内容: 使用Node.js编写连接两个REST API的独立应用程序是否明智? 终点将是POS-销售点-系统 另一个将是托管的电子商务平台 将有一个用于配置服务的最小接口。而已。 问题答案: 是的,Node.js非常适合于调用外部API。就像Node中的所有内容一样,进行这些调用的功能都是基于事件的,这意味着要做一些事情,例如缓冲响应数据,而不是接收单个完整的响应。 例如: 如果要进行很多此类

  • 我被这个错误缠住了。我不知道如何使用令牌设置授权头。 Java代码: HTTP JSON API服务错误:

  • 我正在尝试使用SAS的集成对象模型(sasiom JDBC)从Tableau获取到SAS的其他数据库(JDBC)连接,但遇到以下错误: 错误: 配置详情 到目前为止,我相信我的配置是正确的,但是我认为Tableau没有确定在连接到SAS的JDBC时使用的正确驱动程序类。 从较高的层次来看,JDBC与SAS的连接是这样的: JDBC连接字符串: 驱动程序类名: Tableau要访问的驱动程序jar文

  • 我想扩展我的软件,用JavaFX编写,使用Amazon Chime API来使用它的消息传递。我知道有JS SDK允许建立消息网络套接字会话没有问题。但是在java SDK中没有相关的类。所以我想使用STOMP库来消费webSocketendpoint。 当时我正努力提出正确的请求,即签署AWS请求(计算X-AMZ-Signature) 根据帖子我试图计算正确的X-AMZ签名请求参数。课程是这样的

  • 问题内容: 我正在尝试使用smack 4.1.0运行此代码 这给我一个错误: 并且,在本地openfire服务器中启用调试后,我收到以下消息: 我要去哪里错了? 问题答案: 根据与用户问题的讨论,AS位于XMPPTCPConnectionConfiguration中。默认情况下,Openfire中的端口5223是客户端SSL端口, 服务器>>服务器设置>>客户端连接 错误 org.jivesoft