当前位置: 首页 > news >正文

python json.dump()和json.dumps()的区别

用人话总结一下 json.dump()是针对文件的json和python的转换
json.dumps()主要是针对内容数据

json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding=“utf-8”, default=None, sort_keys=False, **kw)
sort_keys =True:是告诉编码器按照字典排序(a到z)输出。如果是字典类型的python对象,就把关键字按照字典排序。
indent:参数根据数据格式缩进显示,读起来更加清晰。
separators:是分隔符的意思,参数意思分别为不同dict项之间的分隔符和dict项内key和value之间的分隔符,把:和,后面的空格都除去了。
skipkeys:默认值是False,如果dict的keys内的数据不是python的基本类型(str,unicode,int,long,float,bool,None),设置为False时,就会报TypeError的错误。此时设置成True,则会跳过这类key 。
ensure_ascii=True:默认输出ASCLL码,如果把这个该成False,就可以输出中文。
check_circular:如果check_circular为false,则跳过对容器类型的循环引用检查,循环引用将导致溢出错误(或更糟的情况)。
allow_nan:如果allow_nan为假,则ValueError将序列化超出范围的浮点值(nan、inf、-inf),严格遵守JSON规范,而不是使用JavaScript等价值(nan、Infinity、-Infinity)。
default:default(obj)是一个函数,它应该返回一个可序列化的obj版本或引发类型错误。默认值只会引发类型错误。

import json# 定义一个Python对象
data = {"name": "aa","age": 22,"city": "Happy New Year"
}# 使用json.dump()将Python对象转换为JSON格式,并写入文件
with open('data.json', 'w') as file:json.dump(data, file)
import json# 定义一个Python对象
data = {"name": "aa","age": 22,"city": "Happy New Year"
}# 使用json.dumps()将Python对象转换为JSON字符串
json_string = json.dumps(data)print(json_string)

现在,我们来总结一下json.dumps()json.dump()之间的主要区别。

  1. 返回值json.dumps()返回一个JSON格式的字符串,而json.dump()不需要返回任何值,因为它直接将数据写入文件。
  2. 使用场景json.dumps()通常用于在内存中处理JSON数据,例如将Python对象转换为JSON字符串,以便在网络传输或存储到数据库中。而json.dump()则更适合将JSON数据写入文件,例如将Python对象保存为JSON文件。
  3. 参数json.dumps()json.dump()都支持indentsort_keys等参数,用于格式化JSON数据。但是,json.dump()还需要指定要写入的文件对象作为参数。
http://www.lryc.cn/news/493675.html

相关文章:

  • 网络流学习笔记
  • Mybatis PLUS查询对List使用OR模糊查询
  • Debezium日常分享系列之:Debezium Engine
  • I.MX6U 裸机开发20. DDR3 内存知识
  • 【R安装】VSCODE安装及R语言环境配置
  • ES更新问题 Failed to close the XContentBuilder异常
  • svn-git下载
  • 10个Word自动化办公脚本
  • Paddle Inference部署推理(十八)
  • Redis开发02:redis.windows-service.conf 默认配置文件解析与注解
  • redis大key和热key
  • Dubbo 最基础的 RPC 应用(使用 ZooKeeper)
  • 科技赋能:企业如何通过新技术提升竞争力的策略与实践
  • 从0开始深度学习(33)——循环神经网络的简洁实现
  • 【FAQ】HarmonyOS SDK 闭源开放能力 — 公共模块
  • 百度 文心一言 vs 阿里 通义千问 哪个好?
  • 内网不出网上线cs
  • ubuntu22开机自动登陆和开机自动运行google浏览器自动打开网页
  • 企业建站高性能的内容管理系统
  • 【爬虫框架:feapder,管理系统 feaplat】
  • faiss库中ivf-sq(ScalarQuantizer,标量量化)代码解读-5
  • 代码随想录算法训练营第六十天|Day60 图论
  • 在嵌入式Linux下如何用QT开发UI
  • 【JavaScript】Promise详解
  • 1062 Talent and Virtue
  • C++《二叉搜索树》
  • 机器学习-神经网络(BP神经网络前向和反向传播推导)
  • 基于智能物联网关的车辆超重AI检测应用
  • 记录pbootcms提示:登录失败:表单提交校验失败,请刷新后重试的解决办法
  • 【JavaScript】同步异步详解