Azure CLI возвращает второй массив, когда ожидается только один

Я работаю с 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 с теми же результатами. Я ценю любое понимание!


person MattsM    schedule 15.07.2021    source источник
comment
Продолжая работать над этим, я изменил вызов на: sas = az_cli(список учетных записей хранения --query [].[name,resoureGroup,kind] -o tsv) однако это по-прежнему добавляет дополнительный массив в конце, хотя это всего одну строку и повторяет первую учетную запись хранения в списке, только в формате массива. До сих пор понятия не имею, почему это так.   -  person MattsM    schedule 16.07.2021
comment
Вы печатаете объект sas. Метод ToString объекта определяет, что отображается. Вместо этого напечатайте свойство объекта.   -  person John Hanley    schedule 16.07.2021