【发布时间】:2017-10-17 02:41:30
【问题描述】:
我目前正在尝试编写一个 Python 3 脚本来读取和操作 Excel 文件,以告诉我在特定地点进行购买的频率。为此,我使用了openpyxl 模块。
我的脚本目前会自动为我创建一个字典,其中包含每个商店的唯一键以及购买频率。
看起来像这样:{'Sains': 2, 'Sains Petrol': 1, 'McDonalds': 2, 'Council Tax': 1, 'Car Repair': 1, 'Steam Purchase': 1}
接下来我想做的是在相邻的单元格中写下每家商店的名称和购买频率的价值,如下所示:
A3:商店 |编号
A4:商店 |编号
A5:商店 |编号
每个商店和它的号码都应该在一个新的行中。
写入单元格的函数是new_sheet['A3'] = 'Hello World'。 new_sheet 是我分配给工作表的变量的名称。
我现在想编写一段代码,将每个商店及其编号写入我的新工作表。
我成功地编写了一个 for 循环,让我可以将字符串写入工作表上的单元格,但次数与字典中的条目一样多。 循环:
a = len(dict_shops_purchased_from)
for cell_number in range(2, a + 2):
cell = 'A' + str(cell_number)
for i in cell:
new_sheet[cell] = 'Hello World'
所以这会将“Hello World”写入单元格 A3 到 A8。
我还设法编写了一个 for 循环,让我将字典的键和值变成变量:
for key, value in dict_shops_purchased_from.items():
print(key, value)
我的问题是,我该如何更改代码,以便它将字典键写入单元格 Ax 并将值写入单元格 Bx,因为问题在于
new_sheet[cell] 来自 for 循环,key 和 value 也是如此
我尝试了以下方法:
for key, value in dict_shops_purchased_from.items():
print(key, value)
for cell_number in range(2, a + 2):
cell = 'A' + str(cell_number)
for i in cell:
new_sheet[cell] = key
但那只写了字典中的最后一个条目,即“Steam Purchase”,六次
有什么想法可以让我完成这项工作吗?
我希望这是有道理的
【问题讨论】:
标签: python excel dictionary for-loop openpyxl