Компонент функции ADF Azure не работает с автономной средой выполнения

Разбор JSON болезнен в сценарии оболочки. С помощью более подходящего языка создайте инструмент, который извлекает атрибуты JSON в соответствии с соглашениями об использовании сценариев оболочки. Вы можете использовать свой новый инструмент для решения непосредственной проблемы с сценарием оболочки, а затем добавить его в свой комплект для будущих ситуаций.

Например, рассмотрите инструмент jsonlookup , чтобы, если я скажу jsonlookup access token id он вернет атрибут id , определенный в атрибуте токен , определенный в атрибуте access из stdin, который, по-видимому, является данными JSON. Если атрибут не существует, инструмент ничего не возвращает (статус выхода 1). Если синтаксический анализ не выполняется, выйдите из состояния 2 и передайте сообщение stderr. Если поиск завершен, инструмент печатает значение атрибута.

Создав инструмент unix для точной цели извлечения значений JSON, вы можете легко использовать его в сценариях оболочки:

access_token=$(curl <some horrible crap> | jsonlookup access token id)

Любой язык будет использоваться для реализации jsonlookup . Вот довольно краткая версия python:

#!/usr/bin/python                                                               

import sys
import json

try: rep = json.loads(sys.stdin.read())
except:
    sys.stderr.write(sys.argv[0] + ": unable to parse JSON from stdin\n")
    sys.exit(2)
for key in sys.argv[1:]:
    if key not in rep:
        sys.exit(1)
    rep = rep[key]
print rep
0
задан Chooi Ling Si Toh 25 March 2019 в 04:37
поделиться