首页 > 解决方案 > 使用 python openpyxl 库将字典转换为 xls 文件

问题描述

下面是我的字典,我想将字典的键值对写入 Excel 表中名为key&的两列中hourly

'One year reserved'= {
        'Australia Central 2': 0.0097,
        'East US 2': 0.00605,
        'North Central US': 0.00605,
        'South Africa West': 0.01016,
        'UK West': 0.00685,
        'France South': 0.01119,
        'Korea': 0.00639,
        'Canada East': 0.00685,
        'US Gov Virginia': 0.00879,
        'East Asia': 0.0097,
        'South India': 0.01005,
        'South Central US': 0.00731,
        'West US': 0.00719,
        'Australia East': 0.00776,
        'Canada Central': 0.00674,
        'Australia Southeast': 0.00776,
        'Southeast Asia': 0.00776,
        'Central US': 0.00731,
        'West India': 0.00833,
        'East US': 0.00605,
        'Australia Central': 0.0097,
        'UK South': 0.00685,
        'Japan East': 0.00799,
        'Japan West': 0.00879,
        'West Europe': 0.00696,
        'Brazil South': 0.00982,
        'Korea Central': 0.00799,
        'US Gov Texas': 0.00879,
        'US Gov Arizona': 0.00879,
        'Central India': 0.00833,
        'North Europe': 0.00822,
        'West Central US': 0.00731,
        'France Central': 0.00856,
        'South Africa North': 0.00811,
        'West US 2': 0.00605
      }

使用 python openpyxl 库将字典转换为 xls 文件。输出应该是这样的: -

**Key**                   **Hourly**
Australia Central 2        0.008
East US 2                  0.00605
North Central US           0.00605

标签: pythonexcelpython-3.xdictionaryopenpyxl

解决方案


这是一个使用 python 3.6+ 的解决方案,因为它使用 f 字符串。enumerate用于不必将行号存储在另一个引用中。

from openpyxl import Workbook

data = {
    'australia-central': 0.0097,
    'usgov-virginia': 0.00879,
}

workbook = Workbook()
sheet = workbook.active

sheet["A1"] = "Key"
sheet["B1"] = "Hourly"

for row, (key, hourly) in enumerate(data.items(), start=2):
    sheet [f"A{row}"] = key
    sheet [f"B{row}"] = hourly

workbook.save("output.xlsx")

推荐阅读