python

Python json简介

2021-07-21  本文已影响0人  IT赶路人
图片

您知道如何从在线API传输数据或将不同类型的数据存储到本地计算机吗?无论以何种方式,您都会沉浸在JSON中,JSON代表[Java Script Object Notation]。它是一种著名的流行数据格式,用于表示半结构化数据。让我们更详细地了解Python JSON。

Python中的JSON简介

JSON是Java Script Object Notation的缩写,对象表示是一种以有组织且简单的方式存储信息的方式。在浏览器和服务器之间交换数据时,数据必须是文本形式。


345.png

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

如何在Python中读取JSON文件?

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

示例:
import json

既然您已经了解了Python中的JSON,那么让我们更深入地了解一下解析。

解析中:

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

1.从JSON到Python的转换

2.从Python到JSON的转换

JSON到Python的转换:

您可以使用 json.loads()将JSON字符串转换为Python。让我向您展示一下实际执行情况:

示例:
import json
people_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)

输出:
346.png

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

示例:
import json
people_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的转换:

Python对象可以使用json.dump()转换为JSON字符串。让我们看看下面给出的一个例子:

示例:
import json
people_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)
输出:
347.png

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

pandas解析JSON:

import pandas as pd
pd.read_json(r'Path where you saved the JSON fileFile Name.json')
import pandas as pd
import json
with open(r'C:UsersHarshit_KantDesktopnobel.prize.json') as f:
data = json.load(f)
print (data)
df = pd.DataFrame
print(df)

输出:

348.png

接下来,让我们看看如何用Python序列化JSON。

JSON序列化[encode]:

序列化JSON仅仅意味着您正在编码JSON。它将给定的Python数据结构(例如:dict)转换为其有效的JSON对象。为了处理文件中的数据流,Python中的JSON库使用json.dumps

漂亮打印:

Pretty Print负责代码对齐,并使其成为人类可读的格式。让我们看一下下面的示例,其中我传递了两个参数“SORT_KEYS”,这两个参数总是返回布尔值True和“缩进”空格。

示例:
import json
people_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)

349.png

编码演示:

在这个编码演示中,我将使用这里给出的名为“NOBELPRIZE”的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”转储。


350.png

示例(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文件到其各自的PythonObject的更改。


351.png

这就是我们的文章“Python JSON”的结尾。我希望您对所有与JSON、解析、序列化和反序列化相关的概念都很清楚。

上一篇下一篇

猜你喜欢

热点阅读