在本文中,我们将学习 JSON 的基础知识——它是什么、常用在哪里以及它的语法。
你还将看到如何在 Python 中将字符串转换为 JSON。
让我们开始吧!
什么是 JSON
JSON 是 JavaScript Object Notation(JavaScript 对象标记)的缩写。
它是一种数据格式,用于为 Web 应用程序存储和传输信息。
JSON 最初来自 JavaScript 编程语言,但它并不仅仅局限于一种语言。
大多数现代编程语言都有用于解析和生成 JSON 数据的库。
在哪里使用JSON
JSON 主要用于在服务器和客户端之间发送和接收数据,其中客户端是网页或 Web 应用程序。
在 Web 应用程序通过网络连接时使用的请求-响应周期中,这是一种更可靠的格式。与复杂且不太紧凑的 XML 相比,JSON 是使用得更多的格式。
基本的 JSON 语法
在 JSON 中,数据以键值对的形式写入,如下所示:
"first_name": "Katie"
数据用双引号"括起来,键值对用冒号:分隔。
可以有多个键值对,每个键值对之间用逗号分隔:
"first_name": "Katie", "last_name": "Rodgers"
上面的例子展示了一个 对象 ,一个多个键值对的集合。
对象在花括号{}内:
{
"first_name": "Katie",
"last_name": "Rodgers"
}
你还可以使用 JSON 创建数组,即值的有序列表。在这种情况下,数组包含在方括号内:
[
{
"first_name": "Katie",
"last_name": "Rodgers"
},
{
"first_name": "Naomi",
"last_name": "Green"
}
]
或者:
{
"employee": [
{
"first_name": "Katie",
"last_name": "Rodgers"
},
{
"first_name": "Naomi",
"last_name": "Green"
}
]
}
这创建了一个employee象,它有2条记录, 它定义了一个first_name和last_name。
如何在 Python 中处理 JSON 数据
包含 JSON 模块
要在 Python 中使用 JSON,首先需要在 Python 文件的顶部包含 JSON 模块。这是 Python 内置的,是标准库的一部分。
因此,假设你有一个名为 demo.py 的文件。在顶部,你将添加以下行:
import json
使用json.loads()函数
如果你的程序中有 JSON 字符串数据,如下所示:
# 导入json模块
import json
# json 字符串
employee_string = '{"first_name": "Michael", "last_name": "Rodgers", "department": "Marketing"}'
# type 检查对象类型
print(type(employee_string))
# 输出
# <class 'str'>
你可以使用 json.loads() 函数将其转换为 Python 中的 JSON。
json.loads() 函数接受有效字符串作为输入并将其转换为 Python 字典。
这个过程叫作反序列化——将字符串转换为对象。
# 导入json模块
import json
# json 字符串
employee_string = '{"first_name": "Michael", "last_name": "Rodgers", "department": "Marketing"}'
# type 检查对象类型
print(type(employee_string))
# 字符串转为对象
json_object = json.loads(employee_string)
# 检测类型
print(type(json_object))
# 输出
# <class 'dict'>
然后,你可以访问每个单独的项目,就像使用 Python 字典时一样:
# 导入json模块
import json
# json 字符串
employee_string = '{"first_name": "Michael", "last_name": "Rodgers", "department": "Marketing"}'
# type 检查对象类型
print(type(employee_string))
# 字符串转为对象
json_object = json.loads(employee_string)
# 检测类型
print(type(json_object))
# 输出
# <class 'dict'>
# 访问字典的first_name 信息
print(json_object["first_name"])
# 输出
# Michael
让我们再举一个例子:
1.取一些 JSON 字符串数据
import json
# json 字符串串
employees_string = '''
{
"employees": [
{
"first_name": "Michael",
"last_name": "Rodgers",
"department": "Marketing"
},
{
"first_name": "Michelle",
"last_name": "Williams",
"department": "Engineering"
}
]
}
'''
# type()方法检查数据类型
print(type(employees_string))
# output
# <class 'str'>
2.使用 json.loads() 函数将字符串转换为对象
import json
emoloyees_string = '''
{
"employees" : [
{
"first_name": "Michael",
"last_name": "Rodgers",
"department": "Marketing"
},
{
"first_name": "Michelle",
"last_name": "Williams",
"department": "Engineering"
}
]
}
'''
data = json.loads(emoloyees_string)
print(type(data))
# 输出
# <class 'dict'>
3.读取数据
import json
employees_string = '''
{
"employees" : [
{
"first_name": "Michael",
"last_name": "Rodgers",
"department": "Marketing"
},
{
"first_name": "Michelle",
"last_name": "Williams",
"department": "Engineering"
}
]
}
'''
data = json.loads(employees_string)
print(type(data))
# 输出
# <class 'dict'>
# 访问数据
for employee in data["employees"]:
print(employee["first_name"])
# 输出
# Michael
# Michelle
总结
至此,你已经掌握了在 Python 中使用 JSON 的基础知识。
如果你想学习更多关于 Python 的知识, pythontip 有一个python从零到一入门课程,它可以带你学习从基础知识(如变量、循环和函数)到更高级的概念(如数据结构)。