Préservation de l'ordre des propriétés des objets JSON à l'aide des bibliothèques Python
Lors de l'utilisation de json.dumps pour convertir un objet Python en chaîne JSON, le l'ordre des clés dans l'objet JSON de sortie peut être incompatible avec l'ordre d'origine des clés dans l'objet Python d'entrée. Cela peut être problématique si un ordre de clé spécifique est requis.
Pour résoudre ce problème, vous pouvez exploiter certaines bibliothèques Python qui fournissent des fonctionnalités permettant de conserver l'ordre des clés dans les objets JSON.
Utilisation du paramètre sort_keys
Une solution simple consiste à utiliser le paramètre sort_keys en conjonction avec json.dumps. En définissant sort_keys sur True, les clés de l'objet JSON de sortie seront triées par ordre alphabétique croissant.
import json
json_string = json.dumps({'a': 1, 'b': 2}, sort_keys=True)
print(json_string) # Output: '{"a": 1, "b": 2}'
Utilisation des collections.OrderedDict
Pour un contrôle plus fin sur les ordre des clés, vous pouvez utiliser la classe collections.OrderedDict. OrderedDict préserve l'ordre d'insertion des paires clé-valeur, garantissant que l'ordre des clés dans l'objet JSON résultant est le même que l'ordre dans lequel les paires clé-valeur ont été ajoutées à OrderedDict.
from collections import OrderedDict
json_string = json.dumps(OrderedDict([('a', 1), ('b', 2)]))
print(json_string) # Output: '{"a": 1, "b": 2}'
Préservation de l'ordre des clés dans l'entrée JSON
Si l'entrée est au format JSON, vous pouvez utiliser le paramètre object_pairs_hook dans json.loads pour spécifier une fonction qui sera appelée pour chaque paire clé-valeur dans l'objet JSON. Cela vous permet de créer un OrderedDict pour conserver l'ordre des clés.
import json
json_string = '{"a": 1, "b": 2}'
parsed_json = json.loads(json_string, object_pairs_hook=OrderedDict)
print(parsed_json) # Output: OrderedDict([('a', 1), ('b', 2)])
En utilisant ces techniques, vous pouvez vous assurer que l'ordre des propriétés dans les objets JSON est cohérent avec l'ordre souhaité, offrant une plus grande flexibilité et un plus grand contrôle sur les objets JSON en Python.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3