Python (SubscriptionNotFound)订阅';订阅';找不到

Python (SubscriptionNotFound)订阅';订阅';找不到,python,azure-sdk-python,Python,Azure Sdk Python,我列出了所有可用的订阅。调用subscription.id时返回: /subscriptions/<subscription-id> 这意味着我必须手动清理ID subscription.id.replace("/subscription/", "") 真恶心。是否有只获取ID的内置方法?不幸的是,python没有获取订阅ID的内置方法 您可以使用powershell命令,如(Get AzSubscription).Subscription

我列出了所有可用的订阅。调用
subscription.id
时返回:

/subscriptions/<subscription-id>
这意味着我必须手动清理ID

subscription.id.replace("/subscription/", "")

真恶心。是否有只获取ID的内置方法?

不幸的是,python没有获取订阅ID的内置方法

您可以使用powershell命令,如
(Get AzSubscription).SubscriptionId

作者:

子流程模块是Python标准库中的一个模块。信息技术 由可用于创建新进程的调用方法组成 并接收返回值和错误代码/

要运行powershell命令,只需将命令名传递给调用 方法作为字符串

import subprocess 
subprocess.call("(Get-AzSubscription).SubscriptionId")

这是
subscription\u id
属性:


(免责声明我在微软的Azure SDK团队工作)

愚蠢的问题,这是否要求在运行执行此操作的脚本之前安装Azure CLI?实际上,在这种情况下,Azure Power Shell是我们需要的,并且大多数时候它都是自动安装的,如果不是,您可以手动安装。请参阅:您好,这是我所做的,但是,
print(sub.subscription\u id)
的输出将为我提供
/subscription/example-sub-id-123
,如果我想将其传递到
ComputeManagementClient
中,则需要删除前缀
/subscription/
。我只是好奇是否有一种内置的方法来获取所需的ID部分?
subscription\u ID
ID
不是同一个字段,在您的问题中,您使用的是
ID
,而不是
subscription\u ID
import subprocess 
subprocess.call("(Get-AzSubscription).SubscriptionId")
from azure.mgmt.resource.subscriptions import SubscriptionClient
client = SubscriptionClient(credential)

for sub in client.subscriptions.list():
     print(sub.subscription_id)