前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >json美化输出

json美化输出

作者头像
皮大大
发布2023-08-23 15:12:12
5010
发布2023-08-23 15:12:12
举报
文章被收录于专栏:机器学习/数据可视化

json美化输出

有时候,我们拿到手的json文件就是一整行,连在一起:十分的不美观,很难观察到里面的具体信息。本文介绍的是如何利用Python内的json包进行美化输出。

步骤1

我们先将原来的json文件转成Python的字典形式:

代码语言:javascript
复制
# 1、打开json文件转成字典类型

with open("old.json",encoding="utf-8") as f:
    json_to_dict = json.load(f)  # json转成字典

print(json_to_dict)

步骤2

将步骤1中得到的字典内容再转成新的json文件,注意换行和中文乱码问题:

代码语言:javascript
复制
# 2、将字典类型的数据转成json,需要格式输出、美观

with open("new.json", "w", encoding='utf-8') as f:
    json.dump(json_to_dict,   # 待写入数据
              f, # File对象
              indent=2,  # 空格缩进符,写入多行
              sort_keys=True,  # 键的排序
              ensure_ascii=False)  # 显示中文

json包使用

方法

作用

json.dumps()

将python对象编码成Json字符串:字典到json

json.loads()

将Json字符串解码成python对象:json到字典

json.dump()

将python中的对象转化成json储存到文件中

json.load()

将文件中的json的格式转化成python对象提取出来

重要的参数对照:

代码语言:javascript
复制
json.dumps(obj,   # 待转化的对象
           skipkeys=False,  # 默认值是False,若dict的keys内的数据不是python的基本类型(str,unicode,int,long,float,bool,None),设置为False时,就会报TypeError的错误。此时设置成True,则会跳过这类key
           ensure_ascii=True,  # 默认是ASCII码,若设置成False,则可以输出中文
           check_circular=True,  # 若为False,跳过对容器类型的循环引用检查
           allow_nan=True,  # 若allow_nan为假,则ValueError将序列化超出范围的浮点值(nan、inf、-inf),严格遵守JSON规范,而不是使用JavaScript等价值(nan、Infinity、-Infinity)
           cls=None,
           indent=None, # 参数根据格式缩进显示,表示缩进几个空格
           separators=None,   # 指定分隔符;包含不同dict项之间的分隔符和key与value之间的分隔符;同时去掉`: `
           encoding="utf-8",  # 编码
           default=None, # 默认是一个函数,应该返回可序列化的obj版本或者引发类型错误;默认值是只引发类型错误
           sort_keys=False,  # 若为False,则字典的键不排序;设置成True,按照字典排序(a到z)
           **kw)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-4-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • json美化输出
  • 步骤1
  • 步骤2
  • json包使用
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档