如何将 Python 字符串转换为 JSON

2024年 2月 19日 78.5k 0

在本文中,我们将学习 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))

# 输出
# 

你可以使用 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))

# 输出
# 

然后,你可以访问每个单独的项目,就像使用 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))

# 输出
# 

# 访问字典的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
# 

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))
# 输出 
# 

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))
# 输出
# 

# 访问数据
for employee in data["employees"]:
    print(employee["first_name"])

# 输出 
# Michael
# Michelle

总结

至此,你已经掌握了在 Python 中使用 JSON 的基础知识。

如果你想学习更多关于 Python 的知识, pythontip
有一个python从零到一入门课程,它可以带你学习从基础知识(如变量、循环和函数)到更高级的概念(如数据结构)。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论