【发布时间】:2020-12-12 14:31:25
【问题描述】:
我有一个嵌套字典列表,如下所示:
[{'posts': {'item_1': 1,
'item_2': 8,
'item_3': 105,
'item_4': 324,
'item_5': 313, }},
{'edits': {'item_1': 1,
'item_2': 8,
'item_3': 61,
'item_4': 178,
'item_5': 163}},
{'views': {'item_1': 2345,
'item_2': 330649,
'item_3': 12920402,
'item_4': 46199102,
'item_5': 43094955}}]
我想以这种格式将其写入 excel 文件:
+--------+-------+-------+-----------+
| | posts | edits | views |
+--------+-------+-------+-----------+
| item_1 | 1 | 1 | 2345 |
| item_2 | 8 | 8 | 330649 |
| item_3 | 105 | 61 | 12920402 |
| item_4 | 324 | 178 | 46199102 |
| item_5 | 313 | 163 | 430949955 |
+--------+-------+-------+-----------+
我正在使用 xlsxwriter 库并尝试以下内容以及以下内容的变体但未成功:
for item in data:
for col_name, data in item.iteritems():
col += 1
worksheet.write(row, col, col_name)
for row_name, row_data in data.iteritems():
col += 1
worksheet.write(row, col, row_name)
worksheet.write(row + 1, col, row_data)
我想知道重做我的嵌套字典对象是否有意义,或者是否可以以当前形式写入 excel?
当我说没有太多成功时,我的意思是,我可以让它将某些内容写入 excel 文件,例如列名或行或数据,但我无法让它像上图那样写入。我没有收到错误,我怀疑我只是不知道如何正确解压缩这个对象以循环遍历它。在上面的代码中,我得到了第 1 行的行和列名称以及第 2 行的所有值的组合。
我上面代码的输出是:
+--+-------+--------+--------+--------+--------+--------+-------+--------+--------+--------+--------+--------+-------+----------+----------+--------+----------+--------+
| | posts | item_4 | item_5 | item_2 | item_3 | item_1 | edits | item_4 | item_5 | item_2 | item_3 | item_1 | views | item_4 | item_5 | item_2 | item_3 | item_1 |
+--+-------+--------+--------+--------+--------+--------+-------+--------+--------+--------+--------+--------+-------+----------+----------+--------+----------+--------+
| | | 324 | 313 | 8 | 105 | 1 | | 178 | 163 | 8 | 61 | 1 | | 46199102 | 43094955 | 330649 | 12920402 | 2345 |
+--+-------+--------+--------+--------+--------+--------+-------+--------+--------+--------+--------+--------+-------+----------+----------+--------+----------+--------+
【问题讨论】:
-
你能比“没有成功”更具体吗?见minimal reproducible example
-
@jonrsharpe 更新以更清晰
-
但不是很多。你得到什么输出是?
-
您是否考虑过处理字典以使其看起来更像您想要开始的输出(即
{'item1': {'posts': 8, 'edits': 1, ...}, ...})?
标签: python excel dictionary xlsxwriter