如何将Azure SDK的ItemPaged迭代器数据转为可用字典或列表?
解决方法
方法1:使用模型对象的as_dict()方法
Azure SDK返回的每个Subscription对象自带as_dict()方法,能直接把对象转换成字典,存入列表后就是实际可操作的数据。示例代码:
from azure.mgmt.resource import SubscriptionClient from azure.identity import DefaultAzureCredential # 初始化客户端 credential = DefaultAzureCredential() client = SubscriptionClient(credential) subscriptions_list = [] # 遍历迭代器,将对象转成字典后存入列表 for sub in client.subscriptions.list(): subscriptions_list.append(sub.as_dict()) # 此时列表中是字典格式的订阅数据 print(subscriptions_list)
方法2:手动提取指定字段
如果只需要部分数据,可以手动提取对象的属性,构造自定义字典,减少冗余内容:
subscriptions_list = [] for sub in client.subscriptions.list(): sub_dict = { "订阅ID": sub.subscription_id, "显示名称": sub.display_name, "状态": sub.state, "租户ID": sub.tenant_id } subscriptions_list.append(sub_dict) print(subscriptions_list)
补充说明
你直接print(item)能看到数据,是因为这些Azure SDK模型对象重写了__str__/__repr__方法,打印时会自动输出结构化内容,但对象本身仍是类实例,不是字典或列表类型,所以直接存入列表只会保留对象引用。
内容的提问来源于stack exchange,提问作者vb312
相关产品推荐
相关产品推荐

