如何将 Python 字符串转换为 JSON

开发
Json,全名 JavaScript Object Notation,是一种轻量级的数据交换格式。Json最广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式。现在也常用于http请求中,所以对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"

上面的例子展示了一个 对象 ,一个多个键值对的集合。

对象在花括号{}内:

{
  "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))

# 输出
# <class 'str'>

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

# 输出
# <class 'dict'>

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

# 输出
# <class 'dict'>

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

print(type(data))
# 输出 
# <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))
# 输出
# <class 'dict'>

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

# 输出 
# Michael
# Michelle

总结

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

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

责任编辑:华轩 来源: 哈希编程
相关推荐

2024-01-04 09:17:03

前端开发CSV 格式JSON 字符串

2021-12-29 16:40:54

Python语言字符串

2009-06-05 11:16:58

字符串动态转换

2009-11-25 16:55:45

PHP函数explod

2009-07-15 16:56:59

Jython类型Java类型

2024-03-12 07:35:39

Python字符串列表

2017-05-25 15:14:36

2020-12-17 08:08:15

CentOS

2021-11-29 00:17:41

JS符串转换

2023-10-09 23:00:00

jsonPython

2009-07-31 14:09:41

c#时间格式转换

2009-12-01 14:00:37

PHP字符串转换为数值

2023-10-16 09:26:48

CSS类型转换

2024-05-30 08:40:41

大型语言模型LLM人工智能

2010-11-26 14:09:32

MySQL内置函数

2021-08-26 09:46:22

JavaScript字符串URL

2010-03-31 19:15:25

Oracle函数

2016-12-30 13:16:51

字符串算法代码

2011-04-08 10:16:13

文本文件ACCESS数据库

2022-09-22 11:40:11

JavaScript数组开发
点赞
收藏

51CTO技术栈公众号