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

如何将JSON格式数据的键值对按行拆分输出,提升可读性

问题根因

你主业务代码的问题出在两步处理逻辑错误:

  • qr.data.decode('utf-8') 得到的是JSON格式的字符串,不是Python字典/对象
  • 直接把字符串传给json.dumps()时,方法会把它当做普通字符串处理,不会按照JSON结构做缩进换行,只会输出一整行转义后的字符串

修复方案

你需要先把解码得到的JSON字符串反序列化为Python数据结构,再调用json.dumps()时加上indent参数指定缩进量,和你测试代码的逻辑一致,修复后代码如下:

import json

qrType = qr.type
# 第一步:先把解码后的JSON字符串转为Python字典
qr_data_obj = json.loads(qr.data.decode('utf-8'))
# 第二步:对字典做格式化序列化,指定缩进4个空格
qrData = json.dumps(qr_data_obj, sort_keys=True, indent=4, ensure_ascii=False)

# 打印输出
print("[INFORMATION] Found {} barcode:\n{}".format(qrType, qrData))

参数说明

  • indent=4:指定JSON层级缩进为4个空格,实现自动换行分层显示
  • 可选参数ensure_ascii=False:如果你的JSON里有中文等非ASCII字符,加这个参数可以正常显示,不会输出Unicode转义序列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:48:00