我正在编写一个API以下载json文件。假设我有3个字典:
{"task_name":"task1","task_info":"aaaaa"}
{"task_name":"task2","task_info":"bbbbb"}
{"task_name":"task3","task_info":"ccccc"}
我想将这些字典返回到一个json文件中,这是我所做的:
data = json.dumps(tasks_info, default=str)
response = make_response(data, 200, {'mimetype': 'application/json'})
response.headers['Content-Disposition'] = "attachment;filename={}.json".format(urllib.parse.quote('result'))
return response
task_info是一个包含3个字典的列表。 结果文件将像这样打开:
[{"task_name":"task1","task_info":"aaaaa"},{"task_name":"task2","task_info":"bbbbb"},{"task_name":"task3","task_info":"ccccc"}]
这是一条很长的线。 我想要得到的像
[ // the '[' and ']' is not necessary
{"task_name":"task1","task_info":"aaaaa"},
{"task_name":"task2","task_info":"bbbbb"},
{"task_name":"task3","task_info":"ccccc"}
]
我希望每个字典显示在不同的行中,而不是显示在同一行中的每个字典。 有什么办法可以改变结果文件的外观?
格式化此输出的相关命令在json.dumps()中进行。您可以提供许多命令来格式化json。常规方法是定义缩进级别:
哪个漂亮地将json打印到:
To achieve the exact formatting you desire, you need to define your own formatter class. I used this answer and edited it to fit your formatting requirements. Here is the full code:
输出: