How do I only return a specific value in a set of values in an API JSON response?

Viewed 34

I'm trying to return only a specific value from the "data" key in this response that I'm currently working with:

{
  "dataset": {
    "id": 49333506,
    "dataset_code": "YMAB",
    "database_code": "QOR",
    "name": "Y-mAbs Therapeutics Inc. (YMAB) Option Earnings Crush, Liquidity, and Volatility Ratings",
    "description": "Option Earnings Crush, Liquidity, and Volatility Ratings for Y-mAbs Therapeutics Inc. (YMAB). All time periods are measured in calendar days. See documentation for methodology.",
    "refreshed_at": "2022-08-05 21:20:34 UTC",
    "newest_available_date": "2022-08-05",
    "oldest_available_date": "2020-02-12",
    "column_names": [
      "Date",
      "EarningsCrushRate",
      "CalendarDaysUntilEarnings",
      "TradingDaysUntilEarnings",
      "LiquidityRating",
      "HasLeapOptions",
      "HasWeeklyOptions",
      "Iv30Rank",
      "Iv30Percentile",
      "Iv30Rating",
      "Iv60Rank",
      "Iv60Percentile",
      "Iv60Rating",
      "Iv90Rank",
      "Iv90Percentile",
      "Iv90Rating",
      "Iv360Rank",
      "Iv360Percentile",
      "Iv360Rating"
    ],
    "frequency": "daily",
    "type": "Time Series",
    "premium": true,
    "limit": null,
    "transform": null,
    "column_index": null,
    "start_date": "2020-02-12",
    "end_date": "2022-08-05",
    "data": [
      [
        "2022-08-05",
        null,
        null,
        null,
        2.0,
        0.0,
        0.0,
        0.1437,
        0.4286,
        0.3706,
        0.1686,
        0.4762,
        0.3936,
        0.1379,
        0.4502,
        0.4129,
        0.107,
        0.5152,
        0.4657
      ],

I only want to return the date, and a single value at a time from the "data": [ key that's within "dataset": {.

Here's the code I have so far, but am stuck as to make this happen:

r = requests.get(url=f"https://data.nasdaq.com/api/v3/datasets/QOR/{symbol}/data.json?api_key={apikey}")
    d = r.json()
    dataset = d['dataset_data']
    data = dataset['data']
    column_names = dataset['column_names']
    date = column_names[0]
    ercrush = column_names[1]
    calendar = column_names[2]
    tradingdays = column_names[3]
    liquidity = column_names[4]
    leaps = column_names[5]
    weeklies = column_names[6]
    ivrank30 = column_names[7]
    ivper30 = column_names[8]
    ivrate30 = column_names[9]
    ivrank60 = column_names[10]
    ivper60 = column_names[11]
    ivrate60 =column_names[12]
    ivrank90 = column_names[13]
    ivper90 = column_names[14]
    ivrank90 = column_names[15]
    ivrank360= column_names[16]
    ivper360 = column_names[17]
    ivrank360 = column_names[18]
    values = data[0]

For example - I'm only trying to return the Date, defined as column_names[0] paired with the value of "2022-08-05" that's within "data": [ , etc.

How would I go about doing this?

Thanks so much for any help.

1 Answers

I figured out the issue!

I created another variable called results = values and now I can pick the values I want and easily match them with the column_names!

Awesome!

The finished code that works:

r = requests.get(url=f"https://data.nasdaq.com/api/v3/datasets/QOR/{symbol}/data.json?api_key=KyVWdRX_o26L5XNUkgqN")
d = r.json()
dataset = d['dataset_data']
data = dataset['data']
column_names = dataset['column_names']
Date = column_names[0]
ercrush = column_names[1]
calendar = column_names[2]
tradingdays = column_names[3]
liquidity = column_names[4]
leaps = column_names[5]
weeklies = column_names[6]
ivrank30 = column_names[7]
ivper30 = column_names[8]
ivrate30 = column_names[9]
ivrank60 = column_names[10]
ivper60 = column_names[11]
ivrate60 =column_names[12]
ivrank90 = column_names[13]
ivper90 = column_names[14]
ivrank90 = column_names[15]
ivrank360= column_names[16]
ivper360 = column_names[17]
ivrank360 = column_names[18]
values = data[0]
results = values[2] #the correction
print(results)
Related