Learner
Learner

Reputation: 682

KeyError: "Key 'fields' not found. If specifying a record_path, all elements of data should have the path."

I am getting very nested json for different items through an API and am then trying to convert some of the received information into a dataframe.

I have worked with this line to get the dataframe I want:

 df = pd.json_normalize(result, record_path=['fields'],errors='ignore')

This works sometimes, but other times I either get a KeyError for the record-path:

KeyError: "Key 'fields' not found. If specifying a record_path, all elements of data should have the path."

I assume that this is because the json I receive is not always exactly the same but can vary according to the type of item that information about is requested.

My question now is, if there is a way to skip data which doesn't have any of these keys? Or if there are other options to ignore the data that doesn't have those keys in it?

Upvotes: 2

Views: 4360

Answers (1)

Cargo23
Cargo23

Reputation: 3189

Thanks for the well written question. To do this, you want to learn about "Exception Handling".

Its worth learning a bit more about it, but here is the tl/dr:

try:
    df = pd.json_normalize(result, record_path=['fields'],,errors='ignore')
except KeyError as e:
    print(f"Unable to normalize json: {json.dumps(result, indent=4)}")

Upvotes: 1

Related Questions