You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Azure SavingsPlanUtilizationSummary数据按列导出为CSV并格式化日期?

解决Azure SavingsPlanUtilizationSummary转DataFrame拆分列及日期格式化问题

核心思路

Azure的SavingsPlanUtilizationSummary是SDK生成的模型对象,直接转DataFrame会被识别为单个字典列。需要先将每个对象转为标准字典,再利用pandas的功能拆分列,同时单独处理日期格式。

具体实现代码

import pandas as pd
from datetime import datetime

# 假设response是从Azure Cost Management API获取的结果
utilization_data = []
for item in response.value:
    # 将Azure模型对象转换为可序列化的字典
    item_dict = item.as_dict()
    
    # 格式化usage_date字段为YYYY-MM-DD格式
    if 'usage_date' in item_dict:
        date_val = item_dict['usage_date']
        if isinstance(date_val, datetime):
            # 处理datetime对象
            item_dict['usage_date'] = date_val.strftime('%Y-%m-%d')
        elif isinstance(date_val, str) and 'T' in date_val:
            # 处理ISO格式字符串(如"2024-06-01T00:00:00Z")
            item_dict['usage_date'] = date_val.split('T')[0]
    
    utilization_data.append(item_dict)

# 转换为DataFrame,自动拆分字典为独立列
# 如果存在嵌套字典字段,改用pd.json_normalize(utilization_data)展开嵌套结构
df = pd.DataFrame(utilization_data)

# 导出为CSV文件
df.to_csv('savings_plan_utilization.csv', index=False, encoding='utf-8')

关键说明

  • 模型转字典:Azure SDK的所有模型类都内置as_dict()方法,能将对象的所有属性转为标准Python字典,让pandas可以识别并拆分为列。
  • 日期格式化:针对usage_date可能的两种格式(datetime对象/ISO字符串)做兼容处理,确保输出统一的YYYY-MM-DD格式。
  • 嵌套字段处理:如果返回的字典包含嵌套结构(比如某个字段是子字典),替换pd.DataFrame()为pd.json_normalize(),可以自动将嵌套字段展开为扁平列(例如parent.child会变成parent_child列名)。

内容的提问来源于stack exchange,提问作者learningtocode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 15:15:55