Я работаю с azure CLI, чтобы создать сценарий обновления хранилища, а также добавить политику, и все это в сценарии Python. Однако, когда я запускаю скрипт, я получаю ожидаемый и очень НЕ ожидаемый результат.
Что я использую до сих пор:
from azure.cli.core import get_default_cli
def az_cli (args_str):
args = args_str.split()
cli = get_default_cli()
cli.invoke(args)
if cli.result.result:
return cli.result.result
elif cli.result.error:
raise cli.result.error
return True
sas = az_cli("storage account list --query [].{Name:name,ResourceGroup:resourceGroup,Kind:kind}")
print(sas)
Используя эту статью SO в качестве справки, я довольно легко выполнение вызовов Azure CLI, однако мой вывод следующий:
[
{
"Kind": "StorageV2",
"Name": "TestStorageName",
"ResourceGroup": "my_test_RG"
},
{
"Kind": "Storage",
"Name": "TestStorageName2",
"ResourceGroup": "my_test_RG_2"
}
]
[OrderedDict([('Name', 'TestStorageName'), ('ResourceGroup', 'my_test_RG'), ('Kind', 'StorageV2')]), OrderedDict([('Name', 'TestStorageName2'), ('ResourceGroup', 'my_test_RG_2'), ('Kind', 'Storage')])]
Кажется, я возвращаю 2 массива, и я не уверен, в чем причина. Я предполагаю, что это связано с тем, что я использую --query для сужения вывода, который я получаю, но я не понимаю, почему он затем повторяется. Ожидаемый результат будет только первой частью в формате json. Я также пробовал с выводом tsv с теми же результатами. Я ценю любое понимание!
sas
. Метод ToString объекта определяет, что отображается. Вместо этого напечатайте свойство объекта. - person John Hanley   schedule 16.07.2021