Python JSON


Python JSON技术文档

什么是JSON

JSON全称是JavaScript Object Notation(JavaScript对象表示法),是一种轻量级的数据交换格式,与XML相同,但更加简单易用,适用于各种应用程序之间的数据通信。它采用类似于C语言的语法,并使用Unicode字符集,因此非常适合网络环境。

JSON的使用

Python为处理JSON数据提供了内置模块,名为“json”。使用这个模块,可以轻松将Python对象转换为JSON对象,反之亦然。

在Python中,JSON对象是Python字典。因此,使用Python操作JSON数据,就相当于操作Python字典。与Python字典类似,JSON对象由键-值对构成,而值的类型可以是字符串、数字、列表、布尔值、null或另一个JSON对象。

将Python对象转换为JSON对象

Python中内置的json模块可以将Python对象转换为JSON对象。使用JSON对象是Python字典,因此,可以使用Python字典表示法来构造JSON。

import json

# Python字典
player = {
  "name": "Kobe Bryant",
  "age": 41,
  "teams": ["Los Angeles Lakers", "ZZ Leiden"],
  "retired": True,
  "awards": {"MVP": 1, "Finals MVP": 2}
}

# 将Python字典转换为JSON对象
player_json = json.dumps(player)
print(player_json)

输出的结果是:

{"name": "Kobe Bryant", "age": 41, "teams": ["Los Angeles Lakers", "ZZ Leiden"], "retired": true, "awards": {"MVP": 1, "Finals MVP": 2}}

如果需要更好的可读性,可以使用indent参数指定缩进级别:

player_json = json.dumps(player, indent=2)
print(player_json)

输出结果为:

{
  "name": "Kobe Bryant",
  "age": 41,
  "teams": [
    "Los Angeles Lakers",
    "ZZ Leiden"
  ],
  "retired": true,
  "awards": {
    "MVP": 1,
    "Finals MVP": 2
  }
}

将JSON对象转换为Python对象

使用json模块也可以将JSON对象转换为Python对象。JSON字符串是一个有效的Python字符串,可以使用Python字符串表示法来创建JSON对象。

player_json = '{"name": "Kobe Bryant", "age": 41, "teams": ["Los Angeles Lakers", "ZZ Leiden"], "retired": true, "awards": {"MVP": 1, "Finals MVP": 2}}'

# 将JSON对象转换为Python字典
player_dict = json.loads(player_json)
print(player_dict)

输出结果为:

{
    'name': 'Kobe Bryant',
    'age': 41,
    'teams': ['Los Angeles Lakers', 'ZZ Leiden'],
    'retired': True,
    'awards': {'MVP': 1, 'Finals MVP': 2}
}

从文件中读取JSON数据

json模块可以从文件中读取JSON数据。在Python中,文件读取是通过open()函数完成的。

假设有一个JSON文件“player.json”,可以使用以下代码从文件读取JSON数据:

import json

# 从文件中读取JSON数据
with open('player.json') as f:
    player = json.load(f)

# 打印Python对象
print(player)

将Python对象写入JSON文件

类似地,可以使用json模块将Python对象写入JSON文件。

import json

# Python字典
player = {
  "name": "Kobe Bryant",
  "age": 41,
  "teams": ["Los Angeles Lakers", "ZZ Leiden"],
  "retired": True,
  "awards": {"MVP": 1, "Finals MVP": 2}
}

# 将Python对象写入JSON文件
with open('player.json', 'w') as f:
    json.dump(player, f)

结论

Python的json模块可以非常方便地处理JSON数据。可以使用json模块将Python对象转换为JSON对象,并将JSON对象转换为Python对象。 还可以将JSON数据读取到Python中,将Python对象写入JSON文件。对于需要读写JSON数据的项目,Python提供了一个强大的工具。