You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

API查询返回JSON如何实现逐行格式化打印?求技术解决方案

问题分析与解决

你的代码里犯了一个典型错误:对同一个数据做了两次JSON序列化,导致输出的是转义后的JSON字符串,而非格式化后的结构。

问题根源

  1. json_object = dumps(host) 已经把host(Python字典/列表)转换成了JSON字符串。
  2. 随后print(dumps(json_object, indent=4))又把这个字符串当成Python对象再次序列化,结果输出的是带转义字符的单行字符串,自然没有格式化效果。
  3. 另外你定义的json_format()函数既没被调用,参数全是默认值,完全起不到格式化作用。

修正方案

直接对原始的Python数据(host)使用json.dumps()并指定indent参数即可实现美化输出,不需要二次序列化。

最简修正代码

import json

def main():
    hardware_id = "x"
    asset_id = "x"
    host = get_information(asset_id='x')  # 假设该函数返回Python字典或列表
    # 直接对host进行美化打印
    print(json.dumps(host, indent=4, ensure_ascii=False))

可选:封装格式化函数

如果需要复用格式化逻辑,可以写一个简单的工具函数:

import json

def pretty_print_json(data):
    # indent=4 控制缩进空格数,ensure_ascii=False 支持中文显示
    print(json.dumps(data, indent=4, ensure_ascii=False, sort_keys=True))

def main():
    hardware_id = "x"
    asset_id = "x"
    host = get_information(asset_id='x')
    pretty_print_json(host)

关键参数说明

  • indent=4:指定缩进的空格数,让每个键值对换行并缩进,实现你要的每行一个键值对的效果。
  • ensure_ascii=False:如果返回的JSON包含中文,这个参数能避免中文被转成Unicode编码。
  • sort_keys=True:可选参数,会按字母顺序排序键,让输出更规整。

内容的提问来源于stack exchange,提问作者yellowledbetterown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 23:25:27