#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. И если ваш мир плоский, вы, по крайней мере, научитесь, ознакомившись с хорошим кодом.