I am trying to sort the following OrderedDict by doing the following-->
>>> from collections import OrderedDict
>>> d = OrderedDict([(4995L, [{'isbn_13': u'9788131805923', 'book_quantity': 49L, 'seller_book_id': 4995L, 'book_id': 4995L, 'title': u'Industrial Automation and Robotics', 'selling_price': 292.0, 'id': 4995L, 'condition': 'New Book'}]), (6657L, [{'isbn_13': u'9788122425925', 'book_quantity': 49L, 'seller_book_id': 6657L, 'book_id': 6657L, 'title': u'A Textbook of Agricultural Statistics', 'selling_price': 243.0, 'id': 6657L, 'condition': 'New Book'}]), (6137L, [{'isbn_13': u'9788122425727\n', 'book_quantity': 50L, 'seller_book_id': 6137L, 'book_id': 6137L, 'title': u'A Guide to Corporate Governance', 'selling_price': 247.0, 'id': 6137L, 'condition': 'New Book'}]), (6260L, [{'isbn_13': u'9788122414394\n', 'book_quantity': 50L, 'seller_book_id': 6260L, 'book_id': 6260L, 'title': u'Management Accounting \n', 'selling_price': 269.0, 'id': 6260L, 'condition': 'New Book'}])])
>>> OrderedDict(sorted(d.items(), key=lambda item: item[1][0]['selling_price']))
by the selling_price
attribute. But I am not being able to do it.
I tried to apply the concept discussed in this How to sort OrderedDict of OrderedDict? for normal OrderedDict but it did not work. Can someone please help me out? TIA
This should work for the ordered dictionary d
:
OrderedDict(sorted(d.items(), key=lambda item: item[1][0]['selling_price']))
>>> d
OrderedDict([(7484,
[{'book_id': 7484,
'book_quantity': 43,
'condition': 'New Book',
'id': 7484,
'isbn_13': '9788131727591',
'seller_book_id': 7484,
'selling_price': 629.0,
'title': 'Network Management: Principles and Practice, 2/e'}]),
(7485,
[{'book_id': 7484,
'book_quantity': 43,
'condition': 'New Book',
'id': 7484,
'isbn_13': '9788131727591',
'seller_book_id': 7484,
'selling_price': 29.0,
'title': 'Network Management: Principles and Practice, 2/e'}])])
>>> OrderedDict(sorted(d.items(), key=lambda item: item[1][0]['selling_price']))
OrderedDict([(7485,
[{'book_id': 7484,
'book_quantity': 43,
'condition': 'New Book',
'id': 7484,
'isbn_13': '9788131727591',
'seller_book_id': 7484,
'selling_price': 29.0,
'title': 'Network Management: Principles and Practice, 2/e'}]),
(7484,
[{'book_id': 7484,
'book_quantity': 43,
'condition': 'New Book',
'id': 7484,
'isbn_13': '9788131727591',
'seller_book_id': 7484,
'selling_price': 629.0,
'title': 'Network Management: Principles and Practice, 2/e'}])])
Sorted by 'selling_price': 29.0
is less than 'selling_price': 629.0
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With