From 28332f23b3a00e1fa3a695d54bb96ae4022f1abd Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Mon, 24 Aug 2020 16:58:27 +0200 Subject: [PATCH] Don't sort keys when dumping json and yaml (#39214) --- homeassistant/components/http/view.py | 4 +--- homeassistant/util/json.py | 2 +- homeassistant/util/yaml/dumper.py | 6 +++--- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/homeassistant/components/http/view.py b/homeassistant/components/http/view.py index 7c8e9281e420..376465f375b5 100644 --- a/homeassistant/components/http/view.py +++ b/homeassistant/components/http/view.py @@ -47,9 +47,7 @@ class HomeAssistantView: ) -> web.Response: """Return a JSON response.""" try: - msg = json.dumps( - result, sort_keys=True, cls=JSONEncoder, allow_nan=False - ).encode("UTF-8") + msg = json.dumps(result, cls=JSONEncoder, allow_nan=False).encode("UTF-8") except (ValueError, TypeError) as err: _LOGGER.error("Unable to serialize to JSON: %s\n%s", err, result) raise HTTPInternalServerError diff --git a/homeassistant/util/json.py b/homeassistant/util/json.py index 51d7c26a5543..7b6da837c491 100644 --- a/homeassistant/util/json.py +++ b/homeassistant/util/json.py @@ -54,7 +54,7 @@ def save_json( Returns True on success. """ try: - json_data = json.dumps(data, sort_keys=True, indent=4, cls=encoder) + json_data = json.dumps(data, indent=4, cls=encoder) except TypeError: msg = f"Failed to serialize to JSON: {filename}. Bad data at {format_unserializable_data(find_paths_unserializable_data(data))}" _LOGGER.error(msg) diff --git a/homeassistant/util/yaml/dumper.py b/homeassistant/util/yaml/dumper.py index 37df6bb89f54..3d11e943a918 100644 --- a/homeassistant/util/yaml/dumper.py +++ b/homeassistant/util/yaml/dumper.py @@ -10,9 +10,9 @@ from .objects import NodeListClass def dump(_dict: dict) -> str: """Dump YAML to a string and remove null.""" - return yaml.safe_dump(_dict, default_flow_style=False, allow_unicode=True).replace( - ": null\n", ":\n" - ) + return yaml.safe_dump( + _dict, default_flow_style=False, allow_unicode=True, sort_keys=False + ).replace(": null\n", ":\n") def save_yaml(path: str, data: dict) -> None: