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

保存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.xdnf.cn/news/1522812.html

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

相关文章

红黑树的插入 C++

红黑树与二叉搜索树类似 它在每个节点增加了一个存储位记录节点的颜色,可以是RED,也可以是BLACK;通过任意一条从根到叶子简单路径上颜色的约束,红黑树保证最长路径不超过最短路径的二倍,因而近似平衡(最短路径就是全黑…

深入浅出Stream流

Java 8的新特性之一就是流stream,配合同版本出现的 Lambda ,使得操作集合(Collection)提供了极大的便利。 案例引入 在JAVA中,涉及到对数组、Collection等集合类中的元素进行操作的时候,通常会通过循环的…

学习bat脚本

内容包含一些简单命令或小游戏,在乐趣中学习知识。 使用方法: 新建文本文档,将任选其一代码保存到文档中并保存为ASCII编码。将文件后缀改为.bat或.cmd双击运行即可。 一. 关机脚本 1. 直接关机 echo off shutdown -s -t 00秒直接关机。 2…

亿图图示下载安装教程EdrawMax Pro 13版超详细图文教程

亿图图示下载安装教程EdrawMax Pro 13版超详细图文教程: 亿图图示是一款功能强大的综合绘图软件,具有以下特点和功能 丰富的绘图类型:涵盖 210 余种办公绘图类型,包括流程图、思维导图、信息图、工业设计、组织架构图、平面设计…

Java学习第五天(续)

方法 方法是一种语法结构,它可以把一段代码封装成一个功能,以方便重复调用。 主要分析返回值和形参,只要确定这两个就可以定义方法。 方法调用内存图 方法调用完之后就从栈内存清除走了; 方法参数传递机制: 值传递&a…

UE4_地形_悬崖拉伸的解决

参考教程 【虚幻5】UE5_UE4_解决悬崖地形贴图拉伸_哔哩哔哩_bilibili 纹理处理 | 虚幻引擎 4.27 文档 | Epic Developer Community (epicgames.com) 主要通过蓝图节点解决:WorldAlignedTexture WorldAlignedTexture(全局一致纹理)函数用于…

spark sql 优化

1. 配置 比例内存 : core 1:2 2. 增加 core 数可以增加 执行任务的 线程数 3. 计算有大表,并发生shuffle 时,生成的任务数是由spark.sql.shuffle.partitions 决定的,所以针对大表shuffle ,要增加spark.sql.shuffle.partitio…

台球助教陪练预约系统源码开发

随着科技的发展和人们对生活质量要求的提高,体育运动的数字化趋势日益明显。台球作为一种集休闲娱乐与竞技于一体的运动项目,在全球范围内拥有广泛的爱好者群体。为了更好地满足这部分人群的需求,开发一个高效的台球助教陪练预约系统变得尤为…

被低估的SQL

SQL是现代数据库管理系统中不可或缺的一部分。尽管它的使用已十分普遍,但在数据处理领域,SQL的某些功能和潜力仍然被许多人低估。接下来,小编将与您一起,探讨SQL的一些被忽视的特性,揭示它在数据管理中的真正实力。 1.…

【ssh】如何远程连接

1. 在C:\Users\.ssh的config文件里输入配置,如: 如图使用了跳板机 2. 打开cmd,输入: ssh 主机名 出现报错:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! SSH 检测到该主机的密钥与之前保存的密钥不匹配。解决&…

C++ | Leetcode C++题解之第388题文件的最长绝对路径

题目&#xff1a; 题解&#xff1a; class Solution { public:int lengthLongestPath(string input) {int n input.size();int pos 0;int ans 0;vector<int> level(n 1);while (pos < n) {/* 检测当前文件的深度 */int depth 1;while (pos < n && in…

新的打包工具 Rsbuild 尝鲜:Vue2-cli 项目迁移 Rsbuild

当前时间 2024-08-31 看到一个新的打包工具&#xff0c;于是想试一试&#xff0c;这里是官网 测试 用过 vue-cli 的同志们应该有所感受&#xff0c;启动项目挺慢的&#xff0c;我这个项目不太大&#xff0c;第一次启动是最慢的&#xff0c;之后启动快了一些些&#xff0c;而且…

echarts组件——条形统计图

echarts组件——条形统计图 竖向条形统计图&#xff0c;单柱状&#xff0c;多柱状&#xff0c;悬浮框展示 组件代码 <template><div :class"classname" :style"{height:height,width:width}" /> </template><script> // 柱状图…

鸿蒙(API 12 Beta6版)图形【NativeDisplaySoloist开发指导】方舟2D图形服务

如果开发者想在独立线程中进行帧率控制的Native侧业务&#xff0c;可以通过DisplaySoloist来实现&#xff0c;如游戏、自绘制UI框架对接等场景。 开发者可以选择多个DisplaySoloist实例共享一个线程&#xff0c;也可以选择每个DisplaySoloist实例独占一个线程。 接口说明 函…

c++ 156函数

inline内联函数 #include<iostream> using namespace std;inline void printA() {int a 10;cout << "a:" << a << endl;}void main() {//printA();//c编译器会这样 把函数体机械地放到main函数里面{int a 10;cout << "a:"…

如何构建Java SpringBoot中药材管理系统,实现高效进存销,2025届必备技能!

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

Windows安装docker,启动ollama运行open-webui使用AIGC大模型写周杰伦歌词

Windows安装docker&#xff0c;启动ollama运行open-webui使用AIGC大模型写周杰伦歌词 1、下载docker的Windows版本。 docker下载地址&#xff1a; https://docs.docker.com/desktop/install/windows-install/https://docs.docker.com/desktop/install/windows-install/ 2、设…

ui 自动化测试过程是什么?

UI自动化测试是指通过模拟用户操作来测试应用程序的用户界面的一种测试方法。它可以模拟用户在应用程序上的操作&#xff0c;比如点击按钮、输入文本等&#xff0c;然后检查应用程序的响应是否符合预期。UI自动化测试可以提高测试效率并减少人工测试的工作量&#xff0c;同时可…

电脑永久删除的文件还能找回来吗?别再担心,误删文件也能救回!

在日常使用电脑的过程中&#xff0c;我们有时会因为各种原因而永久删除一些文件。这些文件可能是重要的工作文档、珍贵的照片&#xff0c;或者是其他对我们来说有价值的资料。一旦这些文件被永久删除&#xff0c;我们往往会感到焦虑和担忧&#xff0c;不知道是否还能够找回这些…

Linux核心技能:主流监控Prometheus详解,附官方可复制中文文档教程

Prometheus既是一个时序数据库&#xff0c;又是一个监控系统&#xff0c;更是一套完备的监控生态解决方案。作为时序数据库&#xff0c;目前Prometheus已超越了老牌的时序数据库OpenTSDB、Graphite、RRDtool、KairosDB等&#xff0c;如图所示。 &#xff08;来源网络&#xff0…