如何将 Python 字符串转换为 JSON
创始人
2025-07-12 17:21:40
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从零到一入门课程,它可以带你学习从基础知识(如变量、循环和函数)到更高级的概念(如数据结构)。

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
P2P的自白|我不生产内容,我... 现在一提起P2P,人们就会联想到正在被有关部门“围剿”的互联网理财服务。×租宝事件使得劳...