【发布时间】:2020-10-22 11:25:07
【问题描述】:
我有一种情况,json 键值有一个字典。 以前我只有一个字符串或整数或浮点数作为键值。 我可以使用 Python 将所有值放入列表并使用 xlsxwriter 模块填充到 excel 中:
names = list(data['items'][]['variants'].values())
现在我的 json 键值有 dict:
"foobar": {
"agents": {
"scenario": {
"capacity": {
"add": [
"sample"
],
"signal": [
"all"
]
},
"eligibility": true,
"read": false,
"runAsUser": 0
}
},
因此,我的脚本抛出以下错误:
Traceback (most recent call last):
File "/root/virtualenvs/lib/python3.7/site-packages/xlsxwriter/worksheet.py", line 493, in _write
f = float(token)
TypeError: float() argument must be a string or a number, not 'dict'
..............
.......................
.......................
raise TypeError("Unsupported type %s in write()" % type(token))
TypeError: Unsupported type <class 'dict'> in write()
有什么办法可以处理这种情况。 我的目标是捕获该 dict 并将其放入列表中并填充到 excel 中。
【问题讨论】:
-
您只需要遍历字典并逐个单元格地写入您想要的数据。 XlsxWriter docs 中有一个更简单的 dict 结构的示例。但是,您在上面显示的结构有 5 个级别的数据,因此您需要考虑一下如何在 Excel 的 2D 工作表上显示它。
-
感谢您的快速回复@jmcnamara ..........第二级对我来说是关键,下面的结构的其余部分是价值。我希望整个值成为列表中的一个元素。每个元素都应该填充到excel中的单元格中
-
最好使用 Excel 中的屏幕截图更新您的问题,了解您希望它的外观。这样会更容易回答。
标签: json python-3.x xlsxwriter