[New-bugs-announce] [issue38414] Ordering a nested dictionary in python with json format
Umar Asghar
report at bugs.python.org
Tue Oct 8 15:57:40 EDT 2019
New submission from Umar Asghar <mrumarasghar at gmail.com>:
Python does not preserve ordering in JSON format. I have tested it out but it's not working. Here is my code.
# Python3 code to demonstrate
# Sort nested dictionary by key
# using OrderedDict() + sorted()
from collections import OrderedDict
from operator import getitem
import json
# initializing dictionary
test_dict = {'Nikhil' : { 'roll' : 24, 'marks' : 17},
'Akshat' : {'roll' : 54, 'marks' : 12},
'Akash' : { 'roll' : 12, 'marks' : 15}}
# printing original dict
print("The original dictionary : " + str(test_dict))
# using OrderedDict() + sorted()
# Sort nested dictionary by key
res = OrderedDict(sorted(test_dict.items(),
key = lambda x: getitem(x[1], 'marks')))
print("The sorted dictionary by marks is : " + str(res))
# Output
# The sorted dictionary by marks is : OrderedDict([('Akshat', {'marks': 12, 'roll': 54}), ('Akash', {'marks': 15, 'roll': 12}), ('Nikhil', {'marks': 17, 'roll': 24})])
res = json.dumps(res)
# print result
print("The sorted dictionary by marks is : (json)")
print(json.loads(res))
# Output
# The sorted dictionary by marks is :
# {'Akash': {'marks': 15, 'roll': 12}, 'Akshat': {'marks': 12, 'roll': 54}, 'Nikhil': {'marks': 17, 'roll': 24}}
Does anyone suggest any solution for it?
It's different than a simple dictionary. It only targets the nested dictionary ordering. Please don't mark it a duplication of simple dictionary ordering with JSON. thanks
----------
messages: 354228
nosy: Umar Asghar
priority: normal
severity: normal
status: open
title: Ordering a nested dictionary in python with json format
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue38414>
_______________________________________
More information about the New-bugs-announce
mailing list