我有一个python代码,用于从azure方法中提取数据。
for item in response:
print(type(item))
print(item)
df = pd.DataFrame([item])
print(df)
下面是print语句的输出。
1. print(type(item)) :
<class 'azure.mgmt.costmanagement.models._models_py3.SavingsPlanUtilizationSummary'>
2.print(item) :
{'usage_date': datetime.datetime(2022, 12, 26, 0, 0, tzinfo=<isodate.tzinfo.Utc object at 0x00000277D15A2D60>), 'avg_utilization_percentage': 95.83333333039417, 'min_utilization_percentage': 0.0}
3.print(df):
0
0 {'usage_date': datetime.datetime(2022, 12, 26, 0, 0, tzinfo=<isodate.tzinfo.Utc object at 0x00000277D15A2D60>), 'avg_utilization_percentage': 95.83333333039417, 'min_utilization_percentage': 0.0}
以上输出我得到,但我正试图将数据导出到csv与不同的列。我怎样才能用正确的日期格式做到这一点。你能帮帮我吗?
如果您想将响应中的所有行存储到一个CSV文件中,请尝试此操作。
usage_statistics = pd.DataFrame([row for row in response])
usage_statistics.to_csv('output.csv', index=False)
您也可以使用date_format
参数来格式化datetime
对象。
usage_statistics.to_csv('output.csv', date_format='%Y%m%d', index=False)
这是CSV文件的内容。
usage_date,avg_utilization_percentage,min_utilization_percentage
2022-12-26,95.83333333039417,0.0
参考官方文档:strftime()和strptime()行为的格式字符串的代码
这里的问题是,从Azure导入数据时,您没有格式化usage_date
。当从azure导入数据时,请在.strftime("%Y-%m-%d")
之后将日期时间转换为数据帧,这样就可以了。然后你可以用to_csv
把它转换成csv文件。