]> git.openstreetmap.org Git - nominatim.git/commitdiff
CLI: more useful error messages on JSON formatting errors
authorSarah Hoffmann <lonvia@denofr.de>
Fri, 16 Aug 2024 17:47:48 +0000 (19:47 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Fri, 16 Aug 2024 17:47:48 +0000 (19:47 +0200)
src/nominatim_db/clicmd/api.py

index 3deb7e45e04f181f5d1babf0b023064be00856c4..ddc10ff96d729a826126c7052f60b9cd70efe61c 100644 (file)
@@ -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.