182 votes

Les éléments de l'objet JSON sont hors service en utilisant "json.dumps" ?

J'utilise json.dumps pour convertir en json comme

countries.append({"id":row.id,"name":row.name,"timezone":row.timezone})
print json.dumps(countries)

Le résultat que j'ai est :

[
   {"timezone": 4, "id": 1, "name": "Mauritius"}, 
   {"timezone": 2, "id": 2, "name": "France"}, 
   {"timezone": 1, "id": 3, "name": "England"}, 
   {"timezone": -4, "id": 4, "name": "USA"}
]

Je veux avoir les clés dans l'ordre suivant : id, nom, fuseau horaire - mais à la place, j'ai fuseau horaire, id, nom.

Comment dois-je arranger ça ?

11voto

Rabiea Ez Eldeen Points 111

hey i know it is so late for this answer but add sort_keys and assign false to it as following :

json.dumps({'****': ***},sort_keys=False)

ça a marché pour moi

8voto

David Robinson Points 33371

L'ordre d'un dictionnaire n'a aucune relation avec l'ordre dans lequel il a été défini. C'est vrai pour tous les dictionnaires, pas seulement ceux qui sont transformés en JSON.

>>> {"b": 1, "a": 2}
{'a': 2, 'b': 1}

En effet, le dictionnaire a été inversé avant même d'atteindre json.dumps :

>>> {"id":1,"name":"David","timezone":3}
{'timezone': 3, 'id': 1, 'name': 'David'}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X