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.
Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.
Register today!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.
Select SAS Training centers are offering in-person courses. View upcoming courses for: