时间:2023-01-18 11:00:35 | 栏目:Python代码 | 点击:次
在本教程中,你将学习 JSON 的基础知识——它是什么、常用在哪里以及它的语法。
你还将看到如何在 Python 中将字符串转换为 JSON。
让我们开始吧!
JSON 是 JavaScript Object Notation(JavaScript 对象标记)的缩写。
它是一种数据格式,用于为 Web 应用程序存储和传输信息。
JSON 最初来自 JavaScript 编程语言,但它并不仅仅局限于一种语言。
大多数现代编程语言都有用于解析和生成 JSON 数据的库。
JSON 主要用于在服务器和客户端之间发送和接收数据,其中客户端是网页或 Web 应用程序。
在 Web 应用程序通过网络连接时使用的请求-响应周期中,这是一种更可靠的格式。与复杂且不太紧凑的 XML 相比,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" }, ] // or: { "employee": [ { "first_name": "Katie", "last_name": "Rodgers" }, { "first_name": "Naomi", "last_name": "Green" }, ] } //this created an 'employee' object that has 2 records. // It defines the first name and last name of an employee
要在 Python 中使用 JSON,首先需要在 Python 文件的顶部包含 JSON 模块。这是 Python 内置的,是标准库的一部分。
因此,假设你有一个名为 demo.py 的文件。在顶部,你将添加以下行:
import json
如果你的程序中有 JSON 字符串数据,如下所示:
#include json library import json #json string data employee_string = '{"first_name": "Michael", "last_name": "Rodgers", "department": "Marketing"}' #check data type with type() method print(type(employee_string)) #output #<class 'str'>
你可以使用 json.loads() 函数将其转换为 Python 中的 JSON。
json.loads() 函数接受有效字符串作为输入并将其转换为 Python 字典。
这个过程叫作反序列化——将字符串转换为对象。
#include json library import json #json string data employee_string = '{"first_name": "Michael", "last_name": "Rodgers", "department": "Marketing"}' #check data type with type() method print(type(employee_string)) #convert string to object json_object = json.loads(employee_string) #check new data type print(type(json_object)) #output #<class 'dict'>
然后,你可以访问每个单独的项目,就像使用 Python 字典时一样:
#include json library import json #json string data employee_string = '{"first_name": "Michael", "last_name": "Rodgers", "department": "Marketing"}' #check data type with type() method print(type(employee_string)) #convert string to object json_object = json.loads(employee_string) #check new data type print(type(json_object)) #output #<class 'dict'> #access first_name in dictionary print(json_object["first_name"]) #output #Michael
让我们再举一个例子:
1. 取一些 JSON 字符串数据
import json #json string employees_string = ''' { "employees": [ { "first_name": "Michael", "last_name": "Rodgers", "department": "Marketing" }, { "first_name": "Michelle", "last_name": "Williams", "department": "Engineering" } ] } ''' #check data type using the type() method 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(employees_string) print(type(data)) #output #<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)) #output #<class 'dict'> #access first_name for employee in data["employees"]: print(employee["first_name"]) #output #Michael #Michelle