如何将Python字符串转换为JSON
在本教程中,你将学习 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"
上⾯的例⼦展⽰了⼀个对象,⼀个多个键值对的集合。
对象在花括号内:
1{
2    "first_name": "Katie",
3    "last_name": "Rodgers"
4}
你还可以使⽤ JSON 创建数组,即值的有序列表。在这种情况下,数组包含在⽅括号内:
1[
2  {
3
4    "first_name": "Katie",
5    "last_name": "Rodgers"
6  },
7
8  {
9
10    "first_name": "Naomi",
11    "last_name": "Green"
12  },
13]
14
15// or:
16
17
18{
19 "employee": [
20    {
21    "first_name": "Katie",
22    "last_name": "Rodgers"
23  },
24
25  {
26    "first_name": "Naomi",
27    "last_name": "Green"
28  },jsapply用法
29 ]
30}
31
32//this created an 'employee' object that has 2 records.
33// It defines the first name and last name of an employee
如何在 Python 中处理 JSON 数据
包含 JSON 模块
要在 Python 中使⽤ JSON,⾸先需要在 Python ⽂件的顶部包含 JSON 模块。这是 Python 内置的,是标准库的⼀部分。因此,假设你有⼀个名为 demo.py 的⽂件。在顶部,你将添加以下⾏:
import json
使⽤ json.loads() 函数
如果你的程序中有 JSON 字符串数据,如下所⽰:
1#include json library
2import json
3
4#json string data
5employee_string = '{"first_name": "Michael", "last_name": "Rodgers", "department": "Marketing"}' 6
7#check data type with type() method
8print(type(employee_string))
9
10#output
mongodb主从状态查看11#<class 'str'>
你可以使⽤ json.loads() 函数将其转换为 Python 中的 JSON。
json.loads() 函数接受有效字符串作为输⼊并将其转换为 Python 字典。
这个过程叫作反序列化——将字符串转换为对象。
1#include json library
2import json
3
4#json string data
5employee_string = '{"first_name": "Michael", "last_name": "Rodgers", "department": "Marketing"}' 6
7#check data type with type() method
8print(type(employee_string))
9
10#convert string to  object
11json_object = json.loads(employee_string)
12
13#check new data type
14print(type(json_object))
15
16#output
17#<class 'dict'>
然后,你可以访问每个单独的项⽬,就像使⽤ Python 字典时⼀样:
1#include json library
电脑退出程序怎么快捷键2import json
3
4#json string data
5employee_string = '{"first_name": "Michael", "last_name": "Rodgers", "department": "Marketing"}' 6
7#check data type with type() method
8print(type(employee_string))
9
10#convert string to  object
11json_object = json.loads(employee_string)
12
13#check new data type
14print(type(json_object))
15
16#output
17#<class 'dict'>
18
19#access first_name in dictionary
20print(json_object["first_name"])
21
22#output
23#Michael
让我们再举⼀个例⼦:
1. 取⼀些 JSON 字符串数据
1import json
2
3#json string
4employees_string = '''
5{
6    "employees": [
7      {
8          "first_name": "Michael",
9          "last_name": "Rodgers",
10          "department": "Marketing"
11        },
12      {
13          "first_name": "Michelle",
python请求并解析json数据
14          "last_name": "Williams",
15          "department": "Engineering"
16        }
17    ]
18}
19'''
20
typedef完整用法21#check data type using the type() method
22print(type(employees_string))
23
24#output
25#<class 'str'>
2. 使⽤ json.loads() 函数将字符串转换为对象
1import json
2
3emoloyees_string = '''
4{
5    "employees" : [
6      {
7          "first_name": "Michael",
8          "last_name": "Rodgers",
9          "department": "Marketing"
10        },
11      {
12          "first_name": "Michelle",
13          "last_name": "Williams",
14          "department": "Engineering"
15        }tortoisegit使用详解
16    ]
17}
18'''
19
20data = json.loads(employees_string) 21
22print(type(data))
23#output
24#<class 'dict'>
3. 读取数据
1import json
2
3employees_string = '''
4{
5    "employees" : [
6      {
7          "first_name": "Michael",
8          "last_name": "Rodgers",
9          "department": "Marketing" 10
11        },
12      {
13          "first_name": "Michelle",
14          "last_name": "Williams",
15          "department": "Engineering"
16        }
17    ]
18}
19'''
20
21data = json.loads(employees_string) 22
23print(type(data))
24#output
25#<class 'dict'>
26
27#access first_name
28for employee in data["employees"]: 29    print(employee["first_name"])
30
31#output
32#Michael
33#Michelle

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。