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
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理