From d648561a87bbe69dd0e9d156bfb8910ed304cbd3 Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Fri, 16 Aug 2024 19:47:48 +0200 Subject: [PATCH] CLI: more useful error messages on JSON formatting errors --- src/nominatim_db/clicmd/api.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/nominatim_db/clicmd/api.py b/src/nominatim_db/clicmd/api.py index 3deb7e45e..ddc10ff96 100644 --- a/src/nominatim_db/clicmd/api.py +++ b/src/nominatim_db/clicmd/api.py @@ -122,11 +122,17 @@ def _print_output(formatter: napi.FormatDispatcher, result: Any, output = formatter.format_result(result, fmt, options) if formatter.get_content_type(fmt) == CONTENT_JSON: # reformat the result, so it is pretty-printed - json.dump(json.loads(output), sys.stdout, indent=4, ensure_ascii=False) + try: + json.dump(json.loads(output), sys.stdout, indent=4, ensure_ascii=False) + except json.decoder.JSONDecodeError as err: + # Catch the error here, so that data can be debugged, + # when people are developping custom result formatters. + LOG.fatal("Parsing json failed: %s\nUnformatted output:\n%s", err, output) else: sys.stdout.write(output) sys.stdout.write('\n') + class APISearch: """\ Execute a search query.