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.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.