Hi all,
I'm struggling a bit to understand the insheetjson documentation, at least as it pertains to navigating the JSON that gets returned to me from the Bureau of Economic Analysis's API. I am trying to retrieve the regional price parity (RPP) data. I realize that I can get this same data from import fred, but for reasons that aren't worth getting into, I need to get it directly from the BEA. To get a sense of the API return, I have been running the below code (you will need to enter your own BEA API key for this to work for you.
This returns the following:
(Note, this is just a portion, the full JSON is much longer.)
And when I uncomment the flatten option, this is the result:
To parse this, I have tried a number of variations on this code:
but I just don't see in the documentation how to navigate down to the Data level of the JSON to extract the data points I'm looking for at that level (which contain the RPP values for each state). Any tips much appreciated!
I'm struggling a bit to understand the insheetjson documentation, at least as it pertains to navigating the JSON that gets returned to me from the Bureau of Economic Analysis's API. I am trying to retrieve the regional price parity (RPP) data. I realize that I can get this same data from import fred, but for reasons that aren't worth getting into, I need to get it directly from the BEA. To get a sense of the API return, I have been running the below code (you will need to enter your own BEA API key for this to work for you.
Code:
local url https://apps.bea.gov/api/data/?UserID={YOUR API KEY HERE}&method=GetData&datasetname=Regional&T ableName=SARPP&LineCode=1&Year=2018&GeoFips=STATE& ResultFormat=JSON insheetjson using "`url'", showresponse // flatten
Code:
Response from server: { "BEAAPI" : { "Request" : { "RequestParam" : [ { "ParameterName" : "YEAR", "ParameterValue" : "2018" }, { "ParameterName" : "LINECODE", "ParameterValue" : "1" }, { "ParameterName" : "TABLENAME", "ParameterValue" : "SARPP" }, { "ParameterName" : "DATASETNAME", "ParameterValue" : "REGIONAL" }, { "ParameterName" : "METHOD", "ParameterValue" : "GETDATA" }, { "ParameterName" : "USERID", "ParameterValue" : "402D3B19-A3ED-4D30-AAFE-363B1F7F0115" }, { "ParameterName" : "GEOFIPS", "ParameterValue" : "STATE" }, { "ParameterName" : "RESULTFORMAT", "ParameterValue" : "JSON" } ] }, "Results" : { "Statistic" : "RPPs: All items", "UnitOfMeasure" : "Index", "PublicTable" : "SARPP Regional Price Parities by state", "UTCProductionTime" : "2022-07-18T14:08:17.377", "NoteRef" : " ", "Dimensions" : [ { "Name" : "Code", "DataType" : "string", "IsValue" : "0" }, { "Name" : "GeoFips", "DataType" : "string", "IsValue" : "0" }, { "Name" : "GeoName", "DataType" : "string", "IsValue" : "0" }, { "Name" : "TimePeriod", "DataType" : "string", "IsValue" : "0" }, { "Name" : "DataValue", "DataType" : "numeric", "IsValue" : "1" }, { "Name" : "CL_UNIT", "DataType" : "string", "IsValue" : "0" }, { "Name" : "UNIT_MULT", "DataType" : "numeric", "IsValue" : "0" } ], "Data" : [ { "Code" : "SARPP-1", "GeoFips" : "00000", "GeoName" : "United States", "TimePeriod" : "2018", "CL_UNIT" : "Index", "UNIT_MULT" : "0", "DataValue" : "100.000" }, { "Code" : "SARPP-1", "GeoFips" : "01000", "GeoName" : "Alabama", "TimePeriod" : "2018", "CL_UNIT" : "Index", "UNIT_MULT" : "0", "DataValue" : "87.968" },
And when I uncomment the flatten option, this is the result:
Code:
Response from server: BEAAPI:Request:RequestParam:1:ParameterName = GEOFIPS BEAAPI:Request:RequestParam:1:ParameterValue = STATE BEAAPI:Request:RequestParam:2:ParameterName = RESULTFORMAT BEAAPI:Request:RequestParam:2:ParameterValue = JSON BEAAPI:Request:RequestParam:3:ParameterName = LINECODE BEAAPI:Request:RequestParam:3:ParameterValue = 1 BEAAPI:Request:RequestParam:4:ParameterName = USERID BEAAPI:Request:RequestParam:4:ParameterValue = 402D3B19-A3ED-4D30-AAFE-363B1F7F0115 BEAAPI:Request:RequestParam:5:ParameterName = TABLENAME BEAAPI:Request:RequestParam:5:ParameterValue = SARPP BEAAPI:Request:RequestParam:6:ParameterName = DATASETNAME BEAAPI:Request:RequestParam:6:ParameterValue = REGIONAL BEAAPI:Request:RequestParam:7:ParameterName = YEAR BEAAPI:Request:RequestParam:7:ParameterValue = 2018 BEAAPI:Request:RequestParam:8:ParameterName = METHOD BEAAPI:Request:RequestParam:8:ParameterValue = GETDATA BEAAPI:Results:Statistic = RPPs: All items BEAAPI:Results:UnitOfMeasure = Index BEAAPI:Results:PublicTable = SARPP Regional Price Parities by state BEAAPI:Results:UTCProductionTime = 2022-07-18T14:07:57.947 BEAAPI:Results:NoteRef = BEAAPI:Results:Dimensions:1:Name = Code BEAAPI:Results:Dimensions:1:DataType = string BEAAPI:Results:Dimensions:1:IsValue = 0 BEAAPI:Results:Dimensions:2:Name = GeoFips BEAAPI:Results:Dimensions:2:DataType = string BEAAPI:Results:Dimensions:2:IsValue = 0 BEAAPI:Results:Dimensions:3:Name = GeoName BEAAPI:Results:Dimensions:3:DataType = string BEAAPI:Results:Dimensions:3:IsValue = 0 BEAAPI:Results:Dimensions:4:Name = TimePeriod BEAAPI:Results:Dimensions:4:DataType = string BEAAPI:Results:Dimensions:4:IsValue = 0 BEAAPI:Results:Dimensions:5:Name = DataValue BEAAPI:Results:Dimensions:5:DataType = numeric BEAAPI:Results:Dimensions:5:IsValue = 1 BEAAPI:Results:Dimensions:6:Name = CL_UNIT BEAAPI:Results:Dimensions:6:DataType = string BEAAPI:Results:Dimensions:6:IsValue = 0 BEAAPI:Results:Dimensions:7:Name = UNIT_MULT BEAAPI:Results:Dimensions:7:DataType = numeric BEAAPI:Results:Dimensions:7:IsValue = 0 BEAAPI:Results:Data:1:Code = SARPP-1 BEAAPI:Results:Data:1:GeoFips = 00000 BEAAPI:Results:Data:1:GeoName = United States BEAAPI:Results:Data:1:TimePeriod = 2018 BEAAPI:Results:Data:1:CL_UNIT = Index BEAAPI:Results:Data:1:UNIT_MULT = 0 BEAAPI:Results:Data:1:DataValue = 100.000 BEAAPI:Results:Data:2:Code = SARPP-1 BEAAPI:Results:Data:2:GeoFips = 01000 BEAAPI:Results:Data:2:GeoName = Alabama BEAAPI:Results:Data:2:TimePeriod = 2018 BEAAPI:Results:Data:2:CL_UNIT = Index BEAAPI:Results:Data:2:UNIT_MULT = 0 BEAAPI:Results:Data:2:DataValue = 87.968 BEAAPI:Results:Data:3:Code = SARPP-1 BEAAPI:Results:Data:3:GeoFips = 02000 BEAAPI:Results:Data:3:GeoName = Alaska BEAAPI:Results:Data:3:TimePeriod = 2018 BEAAPI:Results:Data:3:CL_UNIT = Index BEAAPI:Results:Data:3:UNIT_MULT = 0 BEAAPI:Results:Data:3:DataValue = 105.169 BEAAPI:Results:Data:4:Code = SARPP-1 BEAAPI:Results:Data:4:GeoFips = 04000 BEAAPI:Results:Data:4:GeoName = Arizona BEAAPI:Results:Data:4:TimePeriod = 2018 BEAAPI:Results:Data:4:CL_UNIT = Index BEAAPI:Results:Data:4:UNIT_MULT = 0 BEAAPI:Results:Data:4:DataValue = 97.638 BEAAPI:Results:Data:5:Code = SARPP-1 BEAAPI:Results:Data:5:GeoFips = 05000 BEAAPI:Results:Data:5:GeoName = Arkansas BEAAPI:Results:Data:5:TimePeriod = 2018 BEAAPI:Results:Data:5:CL_UNIT = Index BEAAPI:Results:Data:5:UNIT_MULT = 0 BEAAPI:Results:Data:5:DataValue = 88.360 BEAAPI:Results:Data:6:Code = SARPP-1 BEAAPI:Results:Data:6:GeoFips = 06000 BEAAPI:Results:Data:6:GeoName = California BEAAPI:Results:Data:6:TimePeriod = 2018 BEAAPI:Results:Data:6:CL_UNIT = Index BEAAPI:Results:Data:6:UNIT_MULT = 0 BEAAPI:Results:Data:6:DataValue = 110.755 BEAAPI:Results:Data:7:Code = SARPP-1 BEAAPI:Results:Data:7:GeoFips = 08000 BEAAPI:Results:Data:7:GeoName = Colorado BEAAPI:Results:Data:7:TimePeriod = 2018 BEAAPI:Results:Data:7:CL_UNIT = Index BEAAPI:Results:Data:7:UNIT_MULT = 0 BEAAPI:Results:Data:7:DataValue = 99.749
Code:
insheetjson results data using "`url'", table("BEAAPI") col("Results:Data") replace offset(0)
Comment