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

grib1文件解析 python_在Python中使用JSON

b73af6c872d741304e2d055183ed672b.png

在本教程中,你将通过示例学习如何在Python中解析、读取和写入JSON。此外,你还将学习如何将JSON转换为dict并漂亮地打印它。

目录表

  • 什么是JSON?

  • 使用 json 模块

  • 在Python中解析 JSON

    ○ 例子: 将JSON 字符串转换为 dict

    ○ 例子: 在Python中 读取JSON 文件

  • 将字典转换为 JSON 字符串(附带例子)

  • 将JSON 写入到文件 (附带例子)

  • 优美输出 JSON (附带例子)

什么是JSON?

JSON (JavaScript对象表示法)是一种用于表示结构化数据的流行数据格式。在服务器和web应用程序之间以JSON格式传输和接收数据是很常见的。

在 Python中, JSON以字符串形式存在. 例如:

ec0711366eab3aa21b1722a7510429b9.png

在文件中存储JSON对象也很常见。

引入json模块

要使用JSON(字符串或包含JSON对象的文件),你可以使用Python的json模块。在使用该模块之前,需要先引入它。

b6d90948861471554ce011361af488c6.png

在Python中解析JSON

使用json模块解析JSON字符串和包含JSON对象的文件是很容易的。

例 1: 在Python 中将JSON 解析成 dict

你可以使用json.loads()方法来解析JSON字符串。该方法返回一个字典。

9d12ed32070e308a546e6cb5aeb95f86.png

这里, person 是一个JSON 字符串, person_dict 是一个字典。

例2: 使用Python读取JSON 文件

你可以使用json.load()方法读取一个包含JSON对象的文件。

假设你有一个名为person.json的文件,它包含一个JSON对象。

2e82987373d61b2281f069dfa9e0ea1a.png

下面是如何解析这个文件:

fb24501422daf642be22c0cf14bdd880.png

在这里,我们使用了open()函数读取json文件。然后,使用json.load()方法解析文件,该方法会返回一个名为data的字典。

如果你不知道如何在Python中读写文件,我们建议你查看一下Python文件I/O [1]。

使用Python 将字典转换为JSON字符串

你可以使用 json.dumps()方法将字典转换成JSON字符串。

例 3: 将字典转换成 JSON

96711f425ee71bfe90c9c4527deb983b.png

下面的列表显示了Python对象及其与JSON的等效转换。

3e818c70fdba88312b044d051abd46df.png

将JSON 写入一个文件

要在Python中将JSON写入文件,我们可以使用json.dump()方法。

例 4: 将JSON 写入一个文件

c390253dad1806c9a0dcf5ae91f20f61.png

在上面的程序中,我们使用'w’在写入模式中打开了一个名为person.txt的文件。如果该文件不存在,就会创建它。然后, json.dump()将person_dict转换为一个JSON字符串,该字符串将保存在person.txt文件中。

当你运行程序时, person.txt文件将被创建,并且包含以下文本。

5bbfb97b8be7bd79c8cd1459c5be85de.png

使用Python 完美输出JSON

为了分析和调试JSON数据,我们可能需要以更易于阅读的格式打印它。这可以通过向json.dumps()和json.dump()方法传递额外的参数indent和sort_keys来实现。

例 5: 使用Python 完美输出JSON

97fd168a89a08f254484bea1b22d91bb.png

当你运行此程序时,输出结果将会是:

af755181b2f8d96b39b4b269597fe6ee.png

在上面的程序中,我们使用了 4 个空格进行缩进。并且,键值是按升序排序的。

顺便说一下,indent的默认值是None,sort_keys的默认值为False。

推荐阅读:

  • 使用Python将 JSON转换为CSV ,反之亦然

  • 使用Python 将XML转换为JSON ,反之亦然

  • Python simplejson [2]

相关链接:

[1]——https://www.programiz.com/python-programming/file-operation 

[2]——https://stackoverflow.com/questions/712791/what-are-the-differences-between-json-and-simplejson-python-modules 

英文原文:https://www.programiz.com/python-programming/json  
 译者:浣熊君( ・᷄৺・᷅ )  

相关文章:

  • concat合并的数组会有顺序么_Javascript中数组方法reduce的妙用之处
  • dqn在训练过程中loss越来越大_物流过程中的仓储风险越来越大,该如何规避?...
  • 关闭运动轨迹_配备业界领先的反射屏 华米Amazfit智能运动手表3评测
  • 克罗地亚第二狂想曲难度_不可能的狼兔cp!剧情好看不靠大尺度,《动物狂想曲》监督专访...
  • sqlserver去重记录_细说SQLServer索引原理
  • python爬虫scrapy安装_Python之Scrapy爬虫框架安装及使用详解
  • echarts 柱状图设置边框_Echarts图表的悬浮框位置的调整
  • nacos修改密码_SpringBoot接入Nacos作为配置中心
  • 中如何调取api_什么是区块头?如何通过区块链API获得区块头信息?| Tokenview
  • oracle 按照时间倒序_oracle的逆序键索引应用!
  • linux 切换cuda版本_linux – 如何更改CUDA版本
  • python dxf matlibplot_python中如何用matlibplot画正弦曲线?
  • npm audit fix什么意思_尝试解决 nvm 1.1.7 无法安装npm
  • mysql cmake_Mysql的cmake编译与安装
  • mysql解析数据类型_MySQL数据类型全解析
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • js递归,无限分级树形折叠菜单
  • js对象的深浅拷贝
  • laravel with 查询列表限制条数
  • Mac转Windows的拯救指南
  • Spring Cloud中负载均衡器概览
  • SpriteKit 技巧之添加背景图片
  • Vue组件定义
  • 给第三方使用接口的 URL 签名实现
  • 前端性能优化--懒加载和预加载
  • 设计模式(12)迭代器模式(讲解+应用)
  • 深入浏览器事件循环的本质
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • Hibernate主键生成策略及选择
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • 选择阿里云数据库HBase版十大理由
  • #### go map 底层结构 ####
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • #预处理和函数的对比以及条件编译
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (¥1011)-(一千零一拾一元整)输出
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (C++20) consteval立即函数
  • (Git) gitignore基础使用
  • (Ruby)Ubuntu12.04安装Rails环境
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (算法)N皇后问题
  • (算法)求1到1亿间的质数或素数
  • (未解决)macOS matplotlib 中文是方框
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (一一四)第九章编程练习
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)ORM
  • .net反编译工具
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • .NET序列化 serializable,反序列化
  • @SuppressWarnings(unchecked)代码的作用
  • [ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现
  • [AR]Vumark(下一代条形码)
  • [bzoj1006]: [HNOI2008]神奇的国度(最大势算法)