当前位置: 首页 > 后端技术 > Python

从零开始学python-什么是PythonJSON?

时间:2023-03-26 17:24:06 Python

本文分享自华为云社区《从零开始学python | 什么是Python JSON以及如何实现?》,原作者:雨川。你知道如何从在线API传输数据或将各种数据存储到本地计算机吗?您沉浸在JSON中的一种方式,它代表JavaScriptObjectNotation。它是一种众所周知且流行的数据格式,用于表示半结构化数据。让我们详细了解PythonJSON。本文将从以下几个方面进行讨论:PythonJSON简介如何在Python中读取JSON文件解析中从Python转换为JSON从JSON转换为PythonPandas解析JSONJSONJSON序列化[编码]漂亮打印的JSON反序列化[解码]编码演示介绍PythonJSON:JSON代表Java的脚本对象nfloat是一种以有组织且简单的方式存储信息的方式。在浏览器和服务器之间交换数据时,数据必须是文本形式。如果你想知道它是不是JavaScript?那么答案是否定的。它是由文本组成的脚本,用于以人类和机器可读的格式存储和传输数据。它是一种受JavaScript启发的小型轻量级数据格式,通常用于文本或字符串格式。JSON数据包几乎相当于python字典。现在,你一定想知道。如何在Python中读取JSON文件?你的问题的答案是你必须导入JSON模块,它通常将Python数据类型转换为JSON字符串文件。它由直接从JSON文件读取和写入的JSON函数组成。Python有一个内置的JSON包,它是标准库的一部分,所以你不需要安装它。示例:importjson现在您已经了解了Python中的JSON,让我们更深入地研究解析。解析:JSON库可以从字符串或文件中解析JSON。它还可以将JSON解析为Python字典或列表,反之亦然。解析通常分为两个阶段:ConvertingfromJSONtoPythonConvertingfromPythontoJSON让我们更好地理解这两个阶段。从JSON转换为Python:您可以使用json.loads()将JSON字符串转换为Python。:例子:importjsonpeople_string='''{"people":[{"emp_name":"Johnsmith","emp_no.":"924367-567-23","emp_email":["johnsmith@dummyemail.com"],"has_license":"false"},{"emp_name":"harshitkant","emp_number":"560-555-5153","emp_email":"null","has_license":"true"}]}'''data=json.loads(people_string)print(data)输出:从上面的输出可以看出,已经打印了一个Python字典。让我们打印数据类型以便更好地理解。示例:importjsonpeople_string='''{"people":[{"emp_name":"Johnsmith","emp_no.":"924367-567-23","emp_email":["johnsmith@dummyemail.com"],"has_license":"false"},{"emp_name":"harshitkant","emp_number":"560-555-5153","emp_email":"null","has_license":"true"}]}'''data=json.loads(people_string)print(type(data))#printsthedatatypeoutput:现在你已经熟悉了一个转换,让我们看看第二阶段类型中的另一个转换。从Python转换为JSON:可以使用json.dumps()将Python对象转换为JSON字符串。示例如下:示例:importjsonpeople_string='''{"people":[{"emp_name":"Johnsmith","emp_no.":"924367-567-23","emp_email":["johnsmith@dummyemail.com"],"has_license":"false"},{"emp_name":"harshitkant","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的。Pandas解析JSON:一个JSON字符串可以通过以下步骤解析成一个pandasDataframe:下面的通用结构可以用来将一个JSON字符串加载到一个DataFrame中importpandasaspdpd.read_json(r'PathwhereyousavetheJSONfileFileName.json')来准备JSON字符串。创建我们正在使用的JSON文件nobel_prize.json。将JSON文件加载到pandasDataFrame中。下面实现的代码将我的JSON文件加载到DataFrame中。importpandasaspdimportjsonwithopen(r'C:UsersHarshit_KantDesktopnobel.prize.json')asf:data=json.load(f)print(data)df=pd.DataFrameprint(df)输出:继续,让我们继续查看如何在Python中序列化JSON。JSON序列化[编码]:序列化JSON只是意味着你在编码JSON。它将给定的Python数据结构(例如:dict)转换为其有效的JSON对象。为了处理文件中的数据流,Python中的JSON库使用了dump()和dumps()方法,它们可以转换数据并将其轻松写入文件。下表是说明Python数据类型到各自JSON类型转换的表格。要记住的要点:dump()–将数据转换为JSON文件dumps()–将数据转换为JSON字符串load()–将JSON文件转换为Python对象loads()–将JSON字符串对象转换为PrettyPython对象的打印:PrettyPrinting负责代码对齐并使其成为人类可读的格式。让我们看看下面的例子,我传递了两个参数“sort_keys”,它总是返回布尔真值和“缩进”空格。示例:importjsonpeople_string='''{"people":[{"emp_name":"Johnsmith","emp_no.":"924367-567-23","emp_email":["johnsmith@dummyemail.com"],"has_license":"false"},{"emp_name":"harshitkant","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)输出:继续PythonJSON教程,让我们了解JSON反序列化。JSON的反序列化【Decode】:JSON的反序列化和序列化正好相反,也就是说你在解码JSON。它将使用执行转换的load()和load()方法将给定的JSON字符串转换为Python对象。下表是一个表格,说明了JSON数据类型到它们对应的Python类型的转换。继续学习“PythonJSON”教程。我将从编码的角度向您展示同时进行序列化和反序列化的实时示例。编码演示:在此编码演示中,我将使用此处提供的名为“诺贝尔奖”的JSON数据集。您将学习如何通过JSON文件进行序列化和反序列化。示例(JSON数据集的序列化):importjsonwithopen('nobel_prize.json.html')asf:data=json.load(f)withopen('new_nobel_prize.json.html')asf:json。dump(data,f,indent=2)输出:Python代码已成功编译并创建了一个新文件“new_nobel_prize.json”,数据将从现有文件“nobel_prize.json”中转储。示例(JSON数据集的反序列化):importjsonwithopen('nobel_prize.json.html')asf:data=json.load(f)fornobel_prizeindata['prizes']:print(nobel_prize['year'],nobel_prize['category'])输出:此片段显示了从JSON文件到其相应Python对象的更改。希望您清楚所有与JSON的解析、序列化和反序列化相关的概念。点击关注,第一时间了解华为云的新鲜技术~