gpt4 book ai didi

python - 写入 csv 时使用字典键作为坐标

转载 作者:太空宇宙 更新时间:2023-11-03 11:49:19 25 4
gpt4 key购买 nike

我有一个字典,它以单元格坐标为键,以所需的单元格内容为值,例如:

dict1 = {'AN32': '2', 'AZ17': '47', ect...}

单元格范围是D4: AZ52

我想将其写入 csv 文件。

我在设计时遇到的问题是字典不一定按字母或数字顺序排列,如上例所示。

我知道如何写入 .csv 文件

with open('example.csv', 'w') as f:

for i in dict1:

f.write(str(dict1[i]) + ',')

这会按顺序写出值,这意味着它们不会在正确的单元格中,我需要它们在由它们的键指定的单元格中。

最佳答案

此代码使用列表理解来构建每一行。

首先,我们使用 string 模块中的 uppercase 字符串创建列标签列表,然后我们使用一个简单的列表构建所有列标签的列表理解。

然后我们使用稍微复杂的列表理解,通过将每个列标签与当前行号(转换为字符串)相结合来创建一个键。该键被传递给 dict1.get() 方法以获取与该键关联的值。我们使用一个空字符串 '' 作为 .get() 的第二个参数,这样如果字典中不存在某个键,我们就会得到一个空字符串。

然后我们使用 .join() 方法连接所有这些字符串,以逗号分隔。

from string import uppercase

#Make a list of the column letters
cols = list(uppercase[3:]) + ['A' + c for c in uppercase]
#print(cols)

with open('example.csv', 'w') as f:
for r in range(4, 53):
row = ','.join([dict1.get(c + str(r), '') for c in cols])
f.write(row + '\n')

如果 dict1 中的值实际上是 int 而不是字符串,那么您需要在尝试连接它们之前将它们转换为字符串。将列表理解更改为

row = ','.join([str(dict1.get(c + str(r), '')) for c in cols])

即使一些值是字符串而一些是数字,这也能应付。

关于python - 写入 csv 时使用字典键作为坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31920681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com