вариант использования
Мне нужно POP () вложенный ключ JSON на основе строки переменной длины, которая передается в мой скрипт.
пример < /strong> < /p>
с учетом словаря {'ip': {'key1': 'val1', 'key2': 'val2' }} Как может pop () значение key1 из словаря, если мой скрипт пройден, путь как ip.key1
Примечание это нужно работать, учитывая любое количество ключей. : < /p>
data = {'IP': {'key1': 'val1', 'key2': 'val2'}}
lst = ['IP', 'key1'] # Convert the string of keys to an array
def get(d,l):
if len(l)==1: return d[l[0]]
return get(d[l[0]],l[1:])
print(get(data, lst))
< /code>
Кроме того, я работаю в ограниченной среде, поэтому использование любых нишевых либеров не является вариантом. < /p>
Я чувствую, что, вероятно, есть просто Способ адаптировать это, чтобы пройти весь путь, но рекурсия причиняет боль моей голове. Есть мысли? Но он не предоставил много контекста, поэтому я обновляю это, чтобы продемонстрировать более сложный набор данных и функцию, которую я использовал на основе ответа Филипа < /p>
data = {'IP': {'key1': {'key3': {'key4': 'val4', 'key5': 'val5'}}, 'key2': 'val2'}}
lst = ['IP', 'key1', 'key3', 'key4']
def popKey(d, l):
current_level = d
for key in l[:-1]:
print(key)
current_level = current_level[key]
print(current_level)
current_level.pop(l[-1])
return d
print(popKey(data, lst))
Подробнее здесь: https://stackoverflow.com/questions/733 ... tring-path
Python3 Pop вложенный json -ключ дает путь строки ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
В чем разница между python-xlib, python3-xlib, pyxlib и xlib в Python3?
Anonymous » » в форуме Python - 0 Ответы
- 82 Просмотры
-
Последнее сообщение Anonymous
-