Это то, что вы искали? Обратите внимание, что я не проверял все варианты использования, потому что я не знаю всех из них. Думаю, это должно охватывать все из них, но, пожалуйста, подтвердите. Код может быть улучшен до такой степени - это только начальная версия, надеюсь, вы сможете улучшить его :)
funcIter
- это функция, которая вызывается снова и снова, пока не будет найдено dt
. Он проверяет, имеет ли тип ввода dictionary
, а затем перебирает объект словаря, чтобы найти ключ. Если он любого другого типа, если предполагает , он относится к списку типов (вы можете добавить еще одну проверку для проверки типа list
), а затем захватывает первый элемент.
dicObject = {"value" :[{"dt":12345}]}
def funcIter(items):
if(isinstance(items, dict)):
for key, value in items.items():
if key.startswith('dt'):
print (key, value)
else:
funcIter(value)
else:
indexes = [n for n, x in enumerate(items) if x == 'dt']
if(len(indexes) < 1):
funcIter(items[0])
else:
print(items[0])
pass
funcIter(dicObject)