Runbook Azure - разбирать параметры Python - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть книга запусков, и я пытаюсь в основном разобрать параметры, которые я ввел в тело запроса POST (используя Postman). Я посмотрел на эту ветку , но не смог заставить ее работать.

Код моего Runbook, где я пытаюсь получить параметры:

mode = str(sys.argv[1])
resource_group_name = str(sys.argv[2])
vm_name = str(sys.argv[3])

вот мой звонок почтальона: Postman

Сообщение об ошибке:

в raw_decode obj, end = self.scan_once (s, idx) ValueError: Ожидается Имя свойства: строка 1, столбец 2 (символ 1)

1 Ответ

0 голосов
/ 03 декабря 2018

Это потому, что когда вы передаете json от почтальона в runbook, runbook примет всю строку json в качестве одного параметра, вы можете использовать print(sys.argv[1]) для проверки этого поведения.Вывод как показано ниже:

enter image description here

В вашем случае есть обходной путь.Когда вы получите входной параметр, получите этот раздел после RequestBody:, этот: {"resource_group_name": "vv1", "vm_name": "vv2"}, который является строкой json Затем вы можете проанализировать строку json, получитьтребуемое значение.

Пример кода, как показано ниже:

import sys
import json

#view the input parameter
print(sys.argv[1])

input_str = sys.argv[1]

# use "1" in index() method, to ignore the first { symbol in the input parameter
start_str = input_str.index("{",1)

end_str = input_str.index("}",1)

str = input_str[start_str:end_str+1]

text = json.loads(str)#parse the json string

#check the value
print("resource_group_name: "+text["resource_group_name"])
print("vm_name: "+text["vm_name"])

Результат теста, как показано ниже:

enter image description here

...