Skip to content

Commit 1575f2f

Browse files
committed
BUG: json_normalize not consistently ignoring errors (pandas-dev#41876)
1 parent 98e2229 commit 1575f2f

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

pandas/io/json/_normalize.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,16 @@ def _recursive_extract(data, path, seen_meta, level=0):
469469
for obj in data:
470470
for val, key in zip(_meta, meta_keys):
471471
if level + 1 == len(val):
472-
seen_meta[key] = _pull_field(obj, val[-1])
472+
try:
473+
seen_meta[key] = _pull_field(obj, val[-1])
474+
except KeyError as e:
475+
if errors == "ignore":
476+
seen_meta[key] = np.nan
477+
else:
478+
raise KeyError(
479+
"Try running with errors='ignore' as key "
480+
f"{e} is not always present"
481+
) from e
473482

474483
_recursive_extract(obj[path[0]], path[1:], seen_meta, level=level + 1)
475484
else:

0 commit comments

Comments
 (0)