Azure Runbook-解析Python参数

时间:2018-11-15 23:59:03

标签: python json azure azure-runbook

我有一个运行本,并且我试图基本上解析输入到POST请求正文中的参数(使用Postman)。我看着这个thread,但无法正常工作。

我试图获取参数的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 :(得分:1)

这是因为当您将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