写点什么

教你一个著名的流行数据格式:Python JSON

发布于: 2021 年 04 月 07 日

摘要: 您知道如何从在线 API 传输数据或将各种数据存储到本地计算机吗?您已经将自己沉浸于 JSON 的一种方式中,JSON 表示 Java Script Object Notation。它是一种著名的流行数据格式,用于表示半结构化数据。让我们详细了解 Python JSON。


本文分享自华为云社区《从零开始学python| 什么是Python JSON以及如何实现?》,原文作者:Yuchuan。

 

您知道如何从在线 API 传输数据或将各种数据存储到本地计算机吗?您已经将自己沉浸于 JSON 的一种方式中,JSON 表示 Java Script ObjectNotation。它是一种著名的流行数据格式,用于表示半结构化数据。让我们详细了解 Python JSON。


本文将讨论以下方面:


  • Python JSON 简介

  • 如何在 Python 中读取 JSON 文件

  • 解析中

  • 从 Python 转换为 JSON

  • 从 JSON 转换为 Python

  • 熊猫解析 JSON

  • JSON 序列化[编码]

  • 漂亮的印刷

  • JSON 的反序列化[解码]

  • 编码示范

Python JSON 简介:


JSON 代表 JAVA 小号 scriptobjectn 浮选是存储在一个有组织的和容易的方式信息的方式。在浏览器和服务器之间交换数据时,数据必须为文本形式。



如果您想知道它是否是 JavaScript?那么答案是否定的。它是一个由文本组成的脚本,用于以人类和机器可读格式存储和传输数据。它是一种受 JavaScript 启发的小型轻量数据格式,通常以文本或字符串格式使用。JSON 数据包几乎等同于 python 字典。现在,您一定想知道。

如何在 Python 中读取 JSON 文件?


问题的答案是,您必须导入 JSON 模块,该模块通常将 Python 数据类型转换为 JSON 字符串文件。它由直接从 JSON 文件读取和写入的 JSON 函数组成。Python 具有内置的 JSON 包,并且是标准库的一部分,因此您无需安装它。

例子:


import json
复制代码


​现在您已经了解了 Python 中的 JSON,下面让我们更深入地分析 Parsing。

解析:


JSON 库可以从字符串或文件中解析 JSON 。它还可以将 JSON 解析到 Python 字典或列表中,反之亦然。解析通常分为两个阶段:


1.    从 JSON 转换为 Python

2.    从 Python 转换为 JSON


让我们更好地了解这两个阶段。

从 JSON 转换为 Python:


您可以使用以下方法将 JSON 字符串转换为 Python json.loads(). :

例子:


import jsonpeople_string = '''{"people":[{"emp_name": "John smith","emp_no.": "924367-567-23","emp_email": ["johnsmith@dummyemail.com"],"has_license": "false"},{"emp_name": "harshit kant","emp_number": "560-555-5153","emp_email": "null","has_license": "true"}]}'''data = json.loads(people_string)print(data)
复制代码

输出:



从上面的输出中可以看到,它已经打印了 Python 字典。让我们打印数据类型以更好地理解。

例子:


import jsonpeople_string = '''{"people":[{"emp_name": "John smith","emp_no.": "924367-567-23","emp_email": ["johnsmith@dummyemail.com"],"has_license": "false"},{"emp_name": "harshit kant","emp_number": "560-555-5153","emp_email": "null","has_license": "true"}]}'''data = json.loads(people_string)print(type(data))  #prints the datatype
复制代码

输出:

<class'dict'>

现在,您已经熟悉一个转换,让我们在第二阶段看看另一种转换类型。

从 Python 转换为 JSON:


通过使用 json.dumps(). 下面给出的示例,可以将 Python 对象转换为 JSON 字符串:

例子:


import jsonpeople_string = '''{"people":[{"emp_name": "John smith","emp_no.": "924367-567-23","emp_email": ["johnsmith@dummyemail.com"],"has_license": "false"},{"emp_name": "harshit kant","emp_no.": "560-555-5153","emp_email": "null","has_license": "true"}]}'''data = json.loads(people_string)new_string = json.dumps(data)print(new_string)
复制代码

输出:



输出将是 JSON 字符串类型。我已经在 JSON 到 Python 的转换中演示了数据类型,将遵循相同的过程来打印数据类型。


让我们继续前进,看看 Pandas 如何解析 JSON。

熊猫解析 JSON:


可以通过以下步骤将 JSON 字符串解析为 pandas Dataframe:


  • 以下通用结构可用于将 JSON 字符串加载到 DataFrame 中


import pandas as pd pd.read_json(r'Path where you saved the JSON fileFile Name.json'
复制代码


  • 准备 JSON 字符串。

  • 创建一个我们正在使用的 JSON 文件 nobel_prize.json。

  • 将 JSON 文件加载到 pandas DataFrame 中。


下面实现的代码将我的 JSON 文件加载到 DataFrame 中。


import pandas as pdimport json with open(r'C:UsersHarshit_KantDesktopnobel.prize.json') as f:   data = json.load(f)print (data) df = pd.DataFrame print(df)
复制代码

输出:



继续前进,让我们看看如何在 Python 中序列化 JSON。

JSON 序列化[编码]:


序列化 JSON 只是意味着您正在编码 JSON。它将给定的 Python 数据结构(ex:dict)转换为其有效的 JSON 对象。为了处理文件中的数据流,Python 中的 JSON 库使用 dump()dumps()方法,该方法进行转换并使其易于将数据写入文件中。


下表是说明将 Python 数据类型转换为各自的 JSON 类型的表格。



要记住的要点:


dump() –将数据转换为 JSON 文件

dumps() –将数据转换为 JSON 字符串

load() –将 JSON 文件转换为 Python 对象

loads()–将 JSON 字符串的对象转换为 Python 对象

漂亮的印刷:


Pretty Printing 负责代码对齐并使其以人类可读的格式进行。让我们看下面的示例,其中我传递了两个参数'sort_keys',这些参数始终返回布尔 True 值和'indent'空格。

例子:

import jsonpeople_string = '''{"people":[{  "emp_name": "John smith",  "emp_no.": "924367-567-23",  "emp_email": ["johnsmith@dummyemail.com"],  "has_license": "false"},{  "emp_name": "harshit kant",  "emp_no.": "560-555-5153",  "emp_email": "null",  "has_license": "true"}]}''' data = json.loads(people_string)new_string = json.dumps(data, sort_keys=True, indent=3)print(new_string)
复制代码


输出:



继续进行 Python JSON 教程,让我们了解 JSON 的反序列化。

JSON 的反序列化[Decode]:


JSON 的反序列化与序列化完全相反,也就是说,这意味着您正在解码 JSON。它将通过使用执行转换的 load()load()方法将给定的 JSON 字符串转换为 Python 对象。


下表是说明将 JSON 数据类型转换为其相应的 Python 类型的表格。



​继续进行“ PythonJSON”教程。我将通过编码的角度向您展示一个同时进行序列化和反序列化的实时示例。

编码演示:


在此编码演示中,我将使用此处给出的 JSON 数据集,称为“诺贝尔奖” 。您将学习如何通过 JSON 文件进行序列化和反序列化。

示例(JSON 数据集的序列化):


import json with open('nobel_prize.json.html') as f:    data = json.load(f) with open('new_nobel_prize.json.html') as f:    json.dump(data,f,indent=2)
复制代码

输出:


Python 代码已成功编译,并创建了一个新文件“new_nobel_prize.json”,将从现有文件“nobel_prize.json”中转储数据。


示例(JSON 数据集的反序列化):


import json with open('nobel_prize.json.html') as f:data = json.load(f) for nobel_prize in data['prizes']:print(nobel_prize['year'],nobel_prize['category'])
复制代码

输出:


该代码段显示了从 JSON 文件到其相应的 Python 对象的更改。



​希望您对与 JSON 的解析,序列化和反序列化有关的所有概念感到清楚。


点击关注,第一时间了解华为云新鲜技术~

发布于: 2021 年 04 月 07 日阅读数: 15
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
教你一个著名的流行数据格式:Python JSON