【发布时间】:2021-08-16 05:19:21
【问题描述】:
这是我的方法。我无法返回整个字典
def get_col(amount):
letter = 0
value = []
values = {}
for i in range(amount):
letter = get_column_letter(i + 1)
[value.append(row.value) for row in ws[letter]]
values = dict(zip(letter, [value]))
value = []
return values
我希望它像这样输出:
{'A': ['ID', 'value is 1', 'value is 2', 'value is 3', 'value is 4', 'value is 5', 'value is 6']}
{'B': ['Name', 'value is 1', 'value is 2', 'value is 3', 'value is 4', 'value is 5', 'value is 6']}
{'C': ['Math', 'value is 1', 'value is 2', 'value is 3', 'value is 4', 'value is 5', 'value is 6']}
但是当 return 在 'for' 上时,它只会返回
{'A': ['ID', 'value is 1', 'value is 2', 'value is 3', 'value is 4', 'value is 5', 'value is 6']}
当返回在'for'循环之外时,它会返回
{'C': ['Math', 'value is 1', 'value is 2', 'value is 3', 'value is 4', 'value is 5', 'value is 6']}
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
请编辑您问题中的代码,使其成为minimal reproducible example - 包括一些显示代码输出问题的最小数据。
-
您在每次迭代时都会覆盖字典
values- 尝试更新字典:stackoverflow.com/a/577241/2711811。values.update(dict(zip(letter,[value])))并返回“外部”循环。 -
使用
ws.iter_cols()来做到这一点要容易得多。
标签: python dictionary openpyxl