保存json时,保存成自己喜欢的格式的方法(而不是直接保存成格式化的json文档)

news2024/9/21 12:25:20

保存json时,不是直接保存成格式化的json文档的格式的方法

  • 前言,博主是如何把格式话的json格式保存成自己喜欢的json格式的
  • 保存成格式化的json文档的格式:
    • 带缩进格式
    • 全部保存成一行
    • 每条数据保存成一行:
  • 保存成自己喜欢的格式
  • 碎碎念

前言,博主是如何把格式话的json格式保存成自己喜欢的json格式的

保存成格式化的json文档的格式:

带缩进格式

with open(output_file, 'w') as f:
    json.dump(output_data, f, indent=4)

全部保存成一行

JSON 文件在打开时不是格式化的(没有缩进和换行),全都保存在一行

with open(output_file, 'w') as f:
    json.dump(output_data, f, separators=(',', ':'))

每条数据保存成一行:

# 保存到变量
saved_results = output_data

# 保存到文件
output_file = 'output.json'

with open(output_file, 'w') as f:
    for item in output_data:
        json_str = json.dumps(item, separators=(',', ':'))
        f.write(json_str + '\n')

print(f"Results have been saved to {output_file}")

保存成自己喜欢的格式

总结:json保存的格式并不是一成不变的,我们可以使用json中自带的字符串替换工具,来自己为其添加一些回车换行符,以及别的缩进符啥的:

比如将以下数据

{"project":"OpenAI","team":[{"name":"Alice","tasks":[{"task":"Research","status":"completed"},{"task":"Writing","status":"pending"}]},{"name":"Bob","tasks":[{"task":"Development","status":"in progress"},{"task":"Testing","status":"not started"}]}]}

通过replace替换后保存

比如我们通过使用replace函数,在想添加回车'\n'的地方,在替换的文字中添加上'\n',就可以:

import json

# 示例数据
example_data_3 = {"project": "OpenAI", "team": [{"name": "Alice", "tasks": [{"task": "Research", "status": "completed"}, {"task": "Writing", "status": "pending"}]}, {"name": "Bob", "tasks": [{"task": "Development", "status": "in progress"}, {"task": "Testing", "status": "not started"}]}]}

# 保存到文件的函数
def save_pretty_json(data, output_file):
    with open(output_file, 'w') as f:
        json_str = json.dumps(data, separators=(',', ':'))
        json_str_with_newlines = json_str.replace('":[{"', '":[\n{"')
        json_str_with_newlines = json_str_with_newlines.replace('d"},{"t', 'd"},\n{"t')
        json_str_with_newlines = json_str_with_newlines.replace('I","tet', 'I",\n"te')
        json_str_with_newlines = json_str_with_newlines.replace('g"}]},{"n', 'g"}]},\n{"n')
        json_str_with_newlines = json_str_with_newlines.replace('s"},{"t', 's"},\n{"t')
        f.write(json_str_with_newlines)
    print(f"Results have been saved to {output_file}")

# 保存示例数据到文件
def save_json(data, output_file):
    with open(output_file, 'w') as f:
        json.dump(data, f, separators=(',', ':'))

save_json(example_data_3,'output5.json')
save_pretty_json(example_data_3, 'output6.json')

我们还可以进一步的,自己控制添加回车缩进,处理成自己方便审阅数据的样子。

使用上面的替换字符串代码后,我就把原始的数据处理成了下面这样
在这里插入图片描述

碎碎念

一定还有其他好用的手动处理数据成自己喜欢样式的方法。如果还有其他方法的话,大家留言哈,感谢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2101977.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《Rust避坑入门记》第1章:挖数据竞争大坑的滥用可变性

赵可菲是一名Java程序员,一直在维护一个有十多年历史的老旧系统。这个系统即将被淘汰,代码质量也很差,每次上线都会出现很多bug,她不得不加班修复。公司给了她3个月的内部转岗期,如果转不出去就会被裁员。她得知公司可…

奇安信天眼--探针/分析平台部署及联动

奇安信天眼–探针/分析平台部署及联动 一 概述二 探针/分析平台部署及联动 1.网络拓扑2.配置流量传感器(探针) (1)登录控制台(2)配置接口(3)配置默认路由及DNS(4)配置SNMP(5)在探针联动分析平台 3.配置分析平台 (1)登录控制台(2)配置接口(3)配置默认路由…

2024年全国各省路网矢量数据介绍

一、2024年全国路网矢量数据介绍 数据更新时间:2024年5月 数据范围:全国(不包含台湾省) 数据格式:shp(线) 数据包含类型:城市主干道、城市次干道、城市快速路、城市支路、高速公…

Python编码系列—Python代码审查的艺术:提升代码质量的黄金法则

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

苹果录屏功能究竟何在?深入探寻苹果设备上的录屏功能:简便、高效、一键达成

在当下这一数字化的时代,不论是教学演示,还是游戏分享,抑或是工作汇报,录屏软件皆已成为我们日常生活中不可或缺之工具。苹果设备以其出类拔萃的用户体验而声名远播,而其内置的录屏功能更是将便捷性与功能性精妙融合。…

TensorFlow介绍二-线性回归案例

一.案例步骤 1.准备数据集:y0.8x0.7 100个样本 2.建立线性模型,初始化w和b变量 3.确定损失函数(预测值与真实值之间的误差),均方误差 4.梯度下降优化损失 二.完整功能代码: import os os.environ[TF…

前端脚手架,自动创建远程仓库并推送

包含命令行选择和输入配置,远程仓库拉取模板,根据配置将代码注入模板框架的代码中,自动创建远程仓库,初始化git并提交至远程仓库,方便项目开发,简化流程。 目录结构 创建一个bin文件夹,添加ind…

KAN 学习 Day2 —— utils.py及spline.py 代码解读及测试

在KAN学习Day1——模型框架解析及HelloKAN中,我对KAN模型的基本原理进行了简单说明,并将作者团队给出的入门教程hellokan跑了一遍,今天我们直接开始进行源码解读。 目录 一、kan目录 二、utils.py 2.1 导入库和模块 2.2 逆函数定义 2.3 …

CentOS 7安装Docker详细步骤-无坑-丝滑-顺畅

一,安装软件包 yum install -y yum-utils device-mapper-persistent-data lvm2二,更换yum源为阿里源: yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 三,查看docker版本&…

标准库标头 <optional> (C++17)学习之optional

类模板 std::optional 管理一个可选 &#xfeff;的所含值&#xff0c;即既可以存在也可以不存在的值。 一种常见的 optional 使用情况是作为可能失败的函数的返回值。与如 std::pair<T, bool> 等其他手段相比&#xff0c;optional 可以很好地处理构造开销高昂的对象&a…

【科普】双轴测径仪是根据哪个测量值控制外径尺寸?

单轴测径仪与双轴测径仪都是自带闭环控制功能的在线外径测量设备&#xff0c;单轴测径仪只有一个测头&#xff0c;是根据该测头的检测数据进行控制&#xff0c;这点毋庸置疑&#xff0c;那双轴测径仪这种具备两组测头的设备又是如何控制的&#xff0c;本文就来简单的介绍一下。…

Ubuntu安装网卡驱动

没有无线网 给自己装了双系统后&#xff0c;发现没有无线网络 下载驱动文件 打开终端&#xff0c;输入 lspci -k 能看到&#xff0c;虽然我是RTL8125BG&#xff0c;但use的是r8169: 08:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controll…

Vue前端路由详解——以Ruoyi框架为案例学习

Vue路由 Vue路由详解_vue 页面路由-CSDN博客 路由模式 Vue 的路由模式&#xff1a;hash 模式和 history 模式的区别_vue路由history和hash的区别-CSDN博客 URL格式&#xff1a; Hash模式&#xff1a;URL中包含#号&#xff0c;用于区分页面部分&#xff0c;实际请求的页面地址…

OpenCV下的无标定校正(stereoRectifyUncalibrated)

OpenCV下的无标定校正(stereoRectifyUncalibrated) 文章目录 1. 杂话2. 无标定校正2.1 先看代码2.2 一点解释2.3 findFundamentalMat参数2.4 stereoRectifyUncalibrated参数 3. 矫正结果 1. 杂话 咱们在之前的帖子里面讲了一些比较常规的标定和校正OpenCV下的单目标定&#xff…

Unity数据持久化 之 文件操作(增删查改)

本文仅作笔记学习和分享&#xff0c;不用做任何商业用途 本文包括但不限于unity官方手册&#xff0c;unity唐老狮等教程知识&#xff0c;如有不足还请斧正​​ 这里需要弄清几个概念&#xff1a; File&#xff1a;提供文件操作的静态方法&#xff0c;是管理的 Windows.File -…

除浮毛用吸尘器有用吗?除浮毛真正有用浮毛空气净化器总结

我的医生朋友经常给朋友们讲解宠物毛发对呼吸道的潜在影响&#xff0c;这引起了不同的反应。有人采纳了他的建议&#xff0c;采取了防护措施&#xff1b;而有人则认为他在制造恐慌&#xff0c;特别是当听到宠物医生的说法与之相左时。 我曾也心存疑虑&#xff0c;但经过与朋友…

做开发一年多了,分享一下自己的疑惑以及大模型给我的一些建议~

写在最前面,下面的疑问是我自己的一些困惑和想知道背后的答案,回答这块是大模型的一些建议,我觉得对我来说不能说很对,至少给我了启发和思考,分享出来给大家,大家如果也有类似的疑惑,希望能提供到帮助 原先Java生态是出现各种复杂的业务场景,需要使用合理且合适的技术架…

house of cat

文章目录 house of cat概述&#xff1a;_IO_wfile_jumps进入_IO_wfile_seekoffFSOP__malloc_assert 例题&#xff1a;思路&#xff1a;分析&#xff1a;利用&#xff1a; house of cat 概述&#xff1a; house of cat主要的摸底还是覆盖vtable指针&#xff0c;因为在glibc-2.2…

结构型设计模式—桥接模式

结构型设计模式—桥接模式 欢迎长按图片加好友&#xff0c;我会第一时间和你分享持续更多的开发知识&#xff0c;面试资源&#xff0c;学习方法等等。 假设你要买一张新桌子&#xff0c;你有两个选择&#xff1a;一种是木制的桌子&#xff0c;另一种是金属制的桌子。 无论你选…

软件工程知识点总结(1):软件工程概述

1 什么是软件&#xff1f; 定义&#xff1a;计算机系统中的程序及其文档。 ——程序是计算机任务的处理对象和处理规模的描述&#xff1b; ——文档是为了便于了解程序所需要的阐明性资料。 2 软件的特点&#xff1f; 软件是无形的&#xff0c;不可见的逻辑实体 ——它的正确与…