All,
I am trying to write multiple api calls using Proc HTTP in the same script. Is it possible to reuse Libname "in" after extracting the data I want from one api call to the next. My code looks like so :
Filename Test1 "&WorkDir./ApiTest.txt"; Proc HTTP URL = &ProdUrlDes. Method = "get" Out = Test1 ; Run; * Assign Libname for parsing ; Libname in json "&WorkDir./ApiTest.txt"; * Parse JSON Response; Data Details; set in.root; Run; Proc Sql NoPrint; Select Var1 Into :GlobalVar1 From Details; Quit; Libname in clear; Filename ForResp "&WorkDir./ApiForTest.txt"; Proc HTTP URL = &UrlTest. Method = "get" Out = ForResp; Run; * Assign Libname for parsing ; Libname in json "&WorkDir./ApiForTest.txt"; * Parse JSON Response; Data SiteData; set in.root; Run; Libname in clear;
I get the following errors:
Yes.
Your error message is complaining about what is actually in the JSON file and has nothing to do with "reusing" the libref.
Inspect the result of the proc http call ("&WorkDir./ApiForTest.txt") with a text editor. You might find some kind of message that you got back from the website instead of the expected JSON file.
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.