LINUX.ORG.RU

История изменений

Исправление vvn_black, (текущая версия) :

A на Python -е никто не напишет правильный пример?

Правильный не правильный, но рабочий однострочник:

import ujson
import pprint
from functools import reduce


data = """
{
  "girls": {
    "0": {"name": "Маша", "position": 555},
    "1": {"name": "Анка", "position": 777},
    "2": {"name": "Ната", "position": 888}
  }
}
"""


d = ujson.loads(data)
d['girls'] = reduce(
    lambda a, c: {**a, **{c[0]: {**c[1], **{'position': c[0] + 1}}}},
    enumerate(sorted(d['girls'].values(), key=lambda x: x['name'])), {})

pprint.pprint(d)
{'girls': {0: {'name': 'Анка', 'position': 1},
           1: {'name': 'Маша', 'position': 2},
           2: {'name': 'Ната', 'position': 3}}}

Исходная версия vvn_black, :

Правильный не правильный, но рабочий однострочник:

import ujson
import pprint
from functools import reduce


data = """
{
  "girls": {
    "0": {"name": "Маша", "position": 555},
    "1": {"name": "Анка", "position": 777},
    "2": {"name": "Ната", "position": 888}
  }
}
"""


d = ujson.loads(data)
d['girls'] = reduce(
    lambda a, c: {**a, **{c[0]: {**c[1], **{'position': c[0] + 1}}}},
    enumerate(sorted(d['girls'].values(), key=lambda x: x['name'])), {})

pprint.pprint(d)
{'girls': {0: {'name': 'Анка', 'position': 1},
           1: {'name': 'Маша', 'position': 2},
           2: {'name': 'Ната', 'position': 3}}}