Как сказать «собрать их все» в glom?

#python #glom

#python #glom

Вопрос:

Какие есть glom хитрости, чтобы иметь возможность сказать «собрать их все».

Пример того, что я имею в виду: каков был бы glom способ извлечения

 {'a': [[11], [22, 22]], 'b': [[33, 33, 33], [44, 44, 44, 44]]}
  

От

 target = {
    'a': {
        1: {
            'one': [1],
            'another': [11]
        },
        2: {
            'one': [2, 2],
            'another': [22, 22]
        }
    },
    'b': {
        1: {
            'three': [3, 3, 3],
            'another': [33, 33, 33]
        },
        2: {
            'four': [4, 4, 4, 4],
            'another': [44, 44, 44, 44]
        }
    }
}
  

быть?

Не жестко закодированный, spec подобный {'a': ..., 'b': ...} , но такой, который будет «проходить через все» ключи (здесь на первом уровне). Обратите внимание, что на втором уровне также есть «пройти через все», но инструкция здесь заключается в том, чтобы игнорировать ключ и просто накапливать то, что когда-либо дают более низкие уровни.

Это может быть еще один случай, когда boltons remap требуется сотрудничество с glom .

Комментарии:

1. что плохого в использовании чистого python для этого

2. @gold_cy: То же самое, что не так с чистым python или ассемблером, если на то пошло, в любом другом случае. Нет ничего плохого в использовании связки велосипедов для перевозки 2 тонн кирпичей. Но если у вас есть грузовик, лучше используйте это. Для задачи извлечения информации из вложенных структур вы можете использовать кучу операторов for и if , или вы можете использовать свой грузовик: glom .

3. мы можем согласиться или не согласиться, постановка задачи намного проще, чем вы думаете, и для ее решения не требуются какие-либо сторонние библиотеки.

4. @gold_cy. Извините, что снова не согласен, но проблема, очевидно, намного сложнее, чем вы думаете, поскольку вы думаете, что это просто. Я действительно не уверен, каков правильный этикет на этой платформе. Возможно, вы можете помочь в этом. Я обычно трачу время на тщательную разработку простого примера для иллюстрации проблемы, но большинство, как и вы, просто отвечают что-то вроде «вы подходите к этому неправильно» или «вам это не нужно», вместо того, чтобы просто ответить на вопрос, предоставляя спрашивающему преимущество сомнения.

5. Я бы посоветовал вам заглянуть в glom на 10 миллионов. Если вы имеете дело с вложенными структурами, эти 10 миллионов дадут вам быструю прибыль по сравнению с чистым python. И если ваш мир плоский, вы, по крайней мере, научитесь, ознакомившись с хорошим кодом.