Python 使用 json 模块存储与读取数据

JSON是一种轻量级数据交换格式,Python通过json模块实现对象与字符串互转;使用json.dump()可将字典、列表等写入文件,配合ensure_ascii=False和indent=4支持中文及格式美化;用json.load()从文件读取并还原为Python对象;仅支持基本类型,datetime等需转字符串处理。

python 使用 json 模块存储与读取数据

在 Python 中,json 模块是处理 JSON 格式数据的标准工具,常用于将数据保存到文件或从文件中读取。它适合存储配置信息、程序状态或结构化数据,使用简单且兼容性好。

什么是 JSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,也易于机器解析和生成。Python 的 json 模块可以将 Python 对象(如字典、列表)转换为 JSON 字符串,也可以将 JSON 字符串还原为 Python 对象。

使用 json.dump() 写入数据到文件

当你想把数据保存到本地文件时,使用 json.dump() 函数。它会将 Python 对象直接写入文件。

示例:保存用户信息到 users.json

import json

data = {"users": [{"name": "Alice", "age": 28, "city": "Beijing"},{"name": "Bob", "age": 32, "city": "Shanghai"}]}

with open("users.json", "w", encoding="utf-8") as f:json.dump(data, f, ensure_ascii=False, indent=4)

参数说明:
ensure_ascii=False:支持中文等非 ASCII 字符输出
indent=4:美化输出,使用 4 个空格缩进,便于阅读

使用 json.load() 从文件读取数据

使用 json.load() 可以从 JSON 文件中读取内容并还原为 Python 数据结构。

立即学习“Python免费学习笔记(深入)”;

示例:读取 users.json 文件

import json

with open("users.json", "r", encoding="utf-8") as f:data = json.load(f)

print(data["users"][0]["name"]) # 输出: Alice

读取后,data 是一个字典,可以直接像操作普通 Python 对象一样访问其内容。

处理复杂数据类型注意事项

json 模块只支持基本的 Python 类型:
– 字典 → 对象
– 列表 → 数组
– 字符串、数字、布尔值、None → 对应 JSON 类型

不支持的数据类型如 datetime、自定义类实例等需要额外处理。
例如,datetime 需要先转为字符串:

from datetime import datetimeimport json

data = {"log": "系统启动","time": datetime.now().isoformat()}

with open("log.json", "w") as f:json.dump(data, f, indent=2)

基本上就这些。只要数据是字典或列表组成的结构,用 json 模块存取就很方便。注意编码和格式化选项,能避免多数常见问题

以上就是Python 使用 json 模块存储与读取数据的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1380941.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月14日 22:32:16
下一篇 2025年12月14日 22:32:26

相关推荐

  • Python爬虫如何抓取问答社区内容_Python爬虫获取问答平台问题和答案的方法

    答案:抓取问答社区内容需分析网站结构,使用requests或Selenium获取数据,结合BeautifulSoup解析HTML,应对动态加载与反爬机制,遵守法律与平台规则,灵活调整方案以有效采集数据。 抓取问答社区内容是Python爬虫常见的应用场景之一,比如知乎、百度知道、Quora等平台都包含…

    好文分享 2025年12月14日
    000
  • Python代码如何操作MongoDB Python代码连接NoSQL数据库的实践

    答案:使用pymongo操作MongoDB需先安装库并建立连接,通过MongoClient管理连接池以提升性能,合理配置maxPoolSize、minPoolSize和maxIdleTimeMS参数;执行CRUD操作时应结合try-except机制捕获ConnectionFailure、Operat…

    2025年12月14日
    000
  • Python中deque的操作整理

    Python中的deque是collections模块提供的高效双端队列,适用于两端频繁添加和删除的场景。相比列表,其头部操作时间复杂度为O(1)。通过from collections import deque创建,可初始化为空或从可迭代对象构建,并支持设置最大长度。d.append(x)和d.ap…

    2025年12月14日
    000
  • 初学者该选择哪个 Python 版本入门

    直接选择Python 3.10及以上版本最合适,因其性能更强、语法更现代、错误提示更清晰;Python 2已停止维护,资源不兼容且存在安全隐患;推荐安装python.org提供的最新稳定版如Python 3.12,并通过python –version验证版本。 对于初学者来说,选择合适的…

    2025年12月14日
    000
  • Python官网如何参与Python文档改进_Python官网文档项目贡献流程

    首先注册GitHub账号并配置Git与Python环境,然后Fork并克隆Python官方文档仓库,设置Sphinx构建环境以预览修改,接着从Issues中选择标记为type-bug或difficulty-easy的任务创建新分支进行编辑,使用reStructuredText格式修改.rst文件并本…

    2025年12月14日
    000
  • Python 临时日志文件的清理机制

    Python通过logging.handlers实现日志轮转,结合系统策略与上下文管理实现临时日志自动清理,需根据场景选择合适策略避免磁盘占用。 Python 临时日志文件的清理机制主要依赖于开发者的设计和系统环境的配合。虽然 Python 自身不会自动清理日志文件,但可以通过合理使用内置模块和外部…

    2025年12月14日
    000
  • Python 环境变量配置详解

    首先找到Python安装路径,然后将Python和Scripts目录添加到系统Path环境变量(Windows)或在shell配置文件中添加bin路径(macOS/Linux),最后通过python –version验证配置是否成功。 Python 环境变量配置是确保 Python 解释…

    2025年12月14日
    000
  • 企业内部 Python 环境管理经验分享

    企业Python环境管理方案确保一致性与安全性,通过统一Python版本、虚拟环境隔离、pip-tools依赖锁定、私有PyPI仓库发布及Docker容器化部署,实现开发到生产的全流程标准化与自动化。 企业在使用 Python 进行开发时,环境管理是一个容易被忽视但极其关键的环节。混乱的依赖关系、版…

    2025年12月14日
    000
  • 临时设置Python环境变量怎么做_Python环境变量临时配置方法与技巧

    使用命令行、os.environ或python-dotenv可临时设置环境变量。1. 命令行方式:Linux/macOS用export VAR=value && python script.py,Windows cmd用set VAR=value && python …

    2025年12月14日
    000
  • Python3官网主页地址如何查找_Python3主页地址查找方法与实用技巧

    Python3官网主页地址是https://www.python.org/,可通过浏览器直接输入域名、搜索引擎检索、添加书签或手机访问等方式进入,官网提供下载、文档、社区和成功案例等核心资源,并支持搜索、智能推荐、快速通道和PyPI跳转等功能以便高效使用。 Python3官网主页地址如何查找?这是不…

    2025年12月14日
    000
  • Windows 上 pip 安装库报错如何处理

    权限不足时使用–user参数或管理员身份运行;2. pip过旧则升级;3. 网络问题换国内镜像源;4. 缺编译工具需安装C++构建工具;5. 路径含中文应重装至英文路径;6. 多环境混淆时用python -m pip确保正确环境。 在 Windows 上使用 pip 安装 Python …

    2025年12月14日
    000
  • Python 异常与循环控制的结合使用

    在循环中捕获异常可提升容错性,如处理无效输入时跳过错误继续执行;2. 异常可触发重试或退出,如连接失败时循环重试直至达到上限;3. 结合 else 和 finally 可实现成功逻辑与资源清理的精细控制;4. 需避免过度捕获、沉默异常和逻辑错误,确保代码健壮性。 在 Python 编程中,异常处理和…

    2025年12月14日
    000
  • Python 异常处理在生成器中的应用

    生成器通过异常处理提升程序健壮性。默认情况下,未捕获的异常会终止迭代,如除零错误直接抛出;可在生成器内用 try-except 捕获并跳过非法值,保持运行;通过 throw() 方法可从外部注入异常,触发内部逻辑处理;调用 close() 时引发 GeneratorExit,用于资源清理,需重新抛出…

    2025年12月14日
    000
  • Python网页版怎样部署到服务器_Python网页版服务器部署流程与技巧

    部署Python网页应用需先配置服务器环境,安装Python及依赖;上传项目后使用Gunicorn运行应用,通过Nginx反向代理处理请求,推荐用Supervisor管理进程,并绑定域名启用HTTPS实现安全访问。 部署Python网页应用到服务器并不复杂,关键在于选择合适的框架、服务器环境和部署方…

    2025年12月14日
    000
  • Tkinter Menubutton菜单显示指南:解决子菜单不弹出的常见问题

    本教程详细讲解了在tkinter中如何正确地将menu组件与menubutton组件关联,以确保点击按钮时子菜单能够正常弹出。文章通过分析常见错误——menu组件未正确指定父级或关联,提供了详细的解决方案和代码示例,指导开发者构建功能完善的桌面应用菜单系统。 引言:Tkinter菜单系统的基础 Tk…

    2025年12月14日
    000
  • python列表如何追加元素

    使用append()将单个元素添加到列表末尾;2. 使用extend()将可迭代对象的元素逐个添加;3. 使用insert()在指定位置插入元素,根据需求选择方法。 在Python中,向列表追加元素最常用的方法是使用 append() 方法。这个方法会将一个元素添加到列表的末尾。 使用 append…

    2025年12月14日
    000
  • Pandas数据重塑:将行级页面数据转换为列级格式

    本文详细介绍了如何使用pandas的`pivot`函数将行级别的数据(例如按页码分布的报告信息)高效地转换为列级别格式。通过一个具体的示例,文章演示了如何利用`index`、`columns`和`values`参数进行数据透视,并结合`add_prefix`、`reset_index`和`renam…

    2025年12月14日
    000
  • Pandas DataFrame中高效计算包含偏移列的行最大值

    本文详细探讨了在pandas dataframe中如何高效地计算包含偏移(shifted)列的行最大值。针对直接在`apply`函数中结合`shift`操作引发的错误和传统`apply`方法的性能瓶颈,文章介绍了使用`df.assign()`创建临时列并结合矢量化`max(axis=1)`操作的优化…

    2025年12月14日
    000
  • Pandas DataFrame多列堆叠与重塑技巧

    本文将深入探讨在pandas dataframe中将多对相关列(如`right_count`, `right_sum`, `left_count`, `left_sum`)高效重塑为更紧凑长格式(如`side`, `count`, `sum`)的多种方法。我们将介绍基于multiindex和`sta…

    2025年12月14日
    000
  • Pandas教程:高效聚合多行数据并合并为逗号分隔列

    本教程详细介绍了如何在pandas dataframe中,根据一列中逗号分隔的id列表,从其他行查找并聚合相关数据(如url),最终将其合并成一个新的逗号分隔列。文章提供了两种高效的pandas解决方案,包括利用explode、map和groupby,以及结合列表推导式和series.get(),旨…

    2025年12月14日
    000

发表回复

登录后才能评论
关注微信