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

Python面试题:如何在 Python 中读取和写入 JSON 文件?

在 Python 中读取和写入 JSON 文件可以使用 json 模块。以下是具体的示例,展示了如何读取和写入 JSON 文件。

读取 JSON 文件

要读取 JSON 文件,可以使用 json.load() 方法。下面是一个示例代码:

import json# 假设有一个名为 data.json 的 JSON 文件,其内容如下:
# {
#     "name": "John",
#     "age": 30,
#     "city": "New York"
# }# 打开 JSON 文件并读取数据
with open('data.json', 'r') as file:data = json.load(file)# 打印读取的数据
print(data)
print(data['name'])
print(data['age'])
print(data['city'])

写入 JSON 文件

要将数据写入 JSON 文件,可以使用 json.dump() 方法。下面是一个示例代码:

import json# 要写入的数据
data = {"name": "Jane","age": 25,"city": "Los Angeles"
}# 打开一个文件以写入数据
with open('output.json', 'w') as file:json.dump(data, file, indent=4)  # indent 参数用于美化输出的 JSON 数据# 写入完成后,可以检查 output.json 文件以确认数据已成功写入

示例代码解释

  1. 导入模块

    import json
    

    json 模块提供了用于处理 JSON 数据的方法。

  2. 读取 JSON 文件

    with open('data.json', 'r') as file:data = json.load(file)
    
    • open('data.json', 'r') 打开名为 data.json 的文件进行读取。
    • json.load(file) 读取文件并将 JSON 数据转换为 Python 字典。
  3. 打印读取的数据

    print(data)
    

    读取的数据存储在变量 data 中,并打印出来。

  4. 写入 JSON 文件

    with open('output.json', 'w') as file:json.dump(data, file, indent=4)
    
    • open('output.json', 'w') 打开名为 output.json 的文件进行写入。如果文件不存在,将创建一个新文件。
    • json.dump(data, file, indent=4) 将 Python 字典 data 写入文件。indent=4 参数使输出的 JSON 数据格式化,以便于阅读。

读取和写入 JSON 字符串

有时你可能需要处理 JSON 字符串而不是文件。在这种情况下,可以使用 json.loads()json.dumps() 方法。

示例代码
import json# JSON 字符串
json_str = '{"name": "Alice", "age": 28, "city": "Chicago"}'# 将 JSON 字符串转换为 Python 字典
data = json.loads(json_str)
print(data)# 将 Python 字典转换为 JSON 字符串
json_str = json.dumps(data, indent=4)
print(json_str)

这些方法使得在 Python 中读取和写入 JSON 文件非常简单和高效。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 互联网盲盒小程序的市场发展前景如何?
  • 暑期备考2024年汉字小达人:吃透18道选择题真题(持续)
  • 什么是反射?
  • Python面试题:在 Python 中,如何实现上下文管理器(context manager)?
  • UE4_材质_材质节点_Fresnel
  • 【pyhton学习】深度理解类和对象
  • RedHat运维-LinuxSELinux基础5-排查SELinux问题
  • 从海上长城到数字防线:视频技术在海域边防现代化中的创新应用
  • Linux 查看磁盘是不是 ssd 的方法
  • Debezium报错处理系列之第110篇: ERROR Error during binlog processing.Access denied
  • Mac搭建anaconda环境并安装深度学习库
  • 量化交易在不同经济周期中的表现
  • centos7部署mysql8.0
  • Python中异步事件触发
  • gitee项目上不同的项目分别使用不用的用户上传
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【Leetcode】104. 二叉树的最大深度
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 【个人向】《HTTP图解》阅后小结
  • css的样式优先级
  • Docker下部署自己的LNMP工作环境
  • exports和module.exports
  • JavaScript的使用你知道几种?(上)
  • Java到底能干嘛?
  • Markdown 语法简单说明
  • PermissionScope Swift4 兼容问题
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • Redis 中的布隆过滤器
  • Spring核心 Bean的高级装配
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • 大数据与云计算学习:数据分析(二)
  • 第2章 网络文档
  • 简单基于spring的redis配置(单机和集群模式)
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 如何选择开源的机器学习框架?
  • 小试R空间处理新库sf
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • #### golang中【堆】的使用及底层 ####
  • $.ajax()
  • (1)bark-ml
  • (11)MSP430F5529 定时器B
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (笔试题)分解质因式
  • (待修改)PyG安装步骤
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (七)c52学习之旅-中断
  • (算法)硬币问题
  • (微服务实战)预付卡平台支付交易系统卡充值业务流程设计
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .net core 控制台应用程序读取配置文件app.config
  • .NET 漏洞分析 | 某ERP系统存在SQL注入
  • .NET 某和OA办公系统全局绕过漏洞分析
  • .net6 webapi log4net完整配置使用流程