Я использую Azure Фабрику данных. Я пытаюсь использовать переменную String для поиска ключа в массиве JSON и получения его значения. Кажется, я не понимаю, как это сделать в ADF.
Подробности:
Я определил параметр конвейера с именем «obj», введите «Object» и содержимое: {"values":{"key1":"value1","key2":"value2"}}
Определение параметра
Мне нужно использовать этот конвейер, чтобы найти значение с именем «key1» и вернуть его как «value1»; «ключ2» и вернуть его как «значение2» ... и так далее. Я планирую использовать свой "obj" в качестве словаря, чтобы выполнить sh this.
Технически говоря, если я хочу найти значение для key2, я могу использовать приведенный ниже код, и он будет должно быть возвращено «значение2»:
@pipeline().parameters.obj.values.key2
Я не могу понять, как это сделать с помощью переменной (вместо жестко запрограммированного «key2»).
Чтобы прояснить ситуацию: у меня есть for-l oop, а внутри него есть только действие копирования: для каждого содержимого Цель действия копирования - скопируйте файл с именем item().name
, но сохраните его в ADLS как то, что item().name
переводит в соответствии с "obj"
Вот как можно построить for-l oop, используя Python : python -for-l oop
В ADF я много чего пробовал (используя concat, replace ...), но ничего не помогло. Самым простым будет это:
@pipeline().parameters.obj.values.item().name
, но это вызывает следующую ошибку:
{"code":"BadRequest","message":"ErrorCode=InvalidTemplate, ErrorMessage=Unable to parse expression 'pipeline().parameters.obj.values.item().name'","target":"pipeline/name_of_the_pipeline/runid/run_id","details":null,"error":null}
Итак, не могли бы вы дать какие-либо идеи, как определить мое выражение ? Я чувствую, что это должно быть действительно очевидно, но я не понимаю ... Спасибо.