python - 如何格式化嵌套字典列表以以人类可读的形式写入文件
问题描述
我有一个大列表,其中列表的每个元素都是字典。在字典中嵌套了另一个列表,该列表本身包含数百个键:值对。我想将此列表写入文件,以便:
- 它的格式很好(人类可读)。文件的不同“级别”的缩进不同
- 它仍然是一个列表(即文件
[
以]
我希望它看起来像这样:
[{
"id": "1",
"day": 20190928,
"layer": {
"some_value": "value",
"some_other_value": 2,
"some_value_int": 5,
"imageFormat": "image/png",
},
"elements": [
{
"httpStatusCode": 200,
"requestTime": 1553731321446,
"some_attribute": 143,
"some_binary_value": True,
},
{
"httpStatusCode": 200,
"requestTime": 1553731321446,
"some_attribute": 143,
"some_binary_value": True,
},
# and so on...
我觉得这一定是一项微不足道的任务,但有点迷茫。这是我尝试过的:
for item in converted_data:
for key, value in item.items():
if type(value) == dict:
#Implement
pass
elif type(value) == list:
#Implement
pass
else:
outfile.write(" {} : {},\n".format(key, value))
但即使在完成之前,我也发现这是一种错误的方法,会使这种简单的事情变得非常复杂。我看过 SO 但没有找到与我的问题类似的问题。那么,我该怎么做呢?
我不需要像我建议的那样成为文件。我只需要它是人类和机器可读的。
对于如何解决此问题的任何建议,我将不胜感激。
解决方案
import json
list_of_dicts # your list
data = json.dumps(list_of_dicts, indent = 4)
# write data to a file...
这将使用 4 个空格进行缩进,如果需要,将 4 更改为其他内容。
推荐阅读
- python - 是否可以递归地编辑可迭代对象中的子元素
- rate-limiting - 限速和背压有什么区别?
- javascript - iCheck 复选框在应用分页后变得不可点击
- python - 如何使用神经网络解决逆问题?
- reactjs - 如何在@react-pdf/pdfkit 中使用自定义字体
- sql - Oracle sql - 案例
- python - 将 XLSX 导入到 ServiceNow
- node.js - 请求正文未定义,嵌套属性上的猫鼬验证错误
- firebase - 为什么我在尝试使用 firebase_core 后会出现错误,认为它是 nullsafety?
- android - 如何在 Android Studio 中禁用 recyclerview 特定数据?