如何用Python编写JSON?

如何用Python编写JSON?

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式, 由于其格式简单、易于阅读、易于编写,广泛应用于Web前后端数据传输和存储。Python是一种高效、易用的编程语言,提供了丰富的JSON处理工具,轻松实现JSON编写和解析。

本文将介绍如何用Python编写JSON,包括以下主要内容:

  1. 什么是JSON?
  2. JSON的Python模块
  3. 如何编写JSON
    1. 简单JSON对象
    2. JSON对象数组
    3. 处理JSON中的特殊字符
      1. 转义字符
      2. 非ASCII字符
  4. 将Python对象转换为JSON
  5. 将JSON解析为Python对象
  6. 总结

什么是JSON?

JSON是一种数据交换格式,常用于Web前后端数据传输和存储。JSON格式具有以下特点:

  1. 简单:由键值对组成,易于理解和调试。
  2. 轻量:格式简单,相对于XML格式,文本数据更小。
  3. 语言无关:JSON格式是一种语言无关的格式,可以在任何编程语言中解析和生成。

一个简单的JSON对象示例如下:

{
  "name": "John",
  "age": 30,
  "city": "New York"
}

JSON的Python模块

Python提供了处理JSON格式的模块,常用的有:

  1. json:标准库,用于编码和解码JSON格式。
  2. simplejson:第三方库,可以更快地处理JSON数据。

本文主要使用标准库json进行JSON编写和解析。

如何编写JSON

简单JSON对象

一个简单的JSON对象由一些属性(键值对)组成,使用花括号作为容器,属性之间使用逗号分隔。Python中可以用字典(dict)类型表示,然后使用json.dumps()函数将字典转换为JSON格式。

import json
person = {'name': 'John', 'age': 30, 'city': 'New York'}
json_str = json.dumps(person)
print(json_str)

输出结果:

{
  "name": "John",
  "age": 30,
  "city": "New York"
}

JSON对象数组

如果要编写包含多个JSON对象的数组,使用方括号作为容器,每个对象之间使用逗号分隔。

import json
people = [
    {'name': 'John', 'age': 30},
    {'name': 'Mary', 'age': 25},
    {'name': 'Bob', 'age': 35}
]
json_str = json.dumps(people)
print(json_str)

输出结果:

[
  {"name": "John", "age": 30},
  {"name": "Mary", "age": 25},
  {"name": "Bob", "age": 35}
]

处理JSON中的特殊字符

转义字符

如果JSON对象中有特殊字符,Python会自动将其转义。例如,如果对象中包含双引号或反斜杠,则会将其转义为 \\” 和 \\。如果要手动编写包含转义字符的JSON对象,可以通过添加转义字符\来实现。

import json
person = {'name': 'John "the killer"', 'age': 30}
json_str = json.dumps(person)
print(json_str)

输出结果:

{"name": "John \"the killer\"", "age": 30}

非ASCII字符

如果JSON对象中包含非ASCII字符(例如中文),则必须使用Unicode编码。Python中可以将其表示为Unicode字符串。

import json
person = {'name': '张三', 'age': 30}
json_str = json.dumps(person, ensure_ascii=False)
print(json_str)

输出结果:

{"name": "张三", "age": 30}

将Python对象转换为JSON

使用json.dumps()函数可以将Python对象转换为JSON格式的字符串。该函数的参数包括:

  1. obj:要转换为JSON格式的Python对象。
  2. indent:格式化输出的缩进数目。
  3. sort_keys:是否按照键排序。
import json
person = {'name': 'John', 'age': 30, 'city': 'New York'}
json_str = json.dumps(person, indent=4, sort_keys=True)
print(json_str)

输出结果:

{
    "age": 30,
    "city": "New York",
    "name": "John"
}

将JSON解析为Python对象

使用json.loads()函数可以将JSON字符串解析为Python对象,常用于Web前后端数据传输。该函数的参数是一个JSON格式的字符串。

import json

json_str = '{"name": "John", "age": 30, "city": "New York"}'
person = json.loads(json_str)

print(person)
print(person['name'])
print(person['age'])
print(person['city'])

输出结果:

{'name': 'John', 'age': 30, 'city': 'New York'}
John
30
New York

总结

本文介绍了如何用Python编写JSON,包括简单JSON对象、JSON对象数组、处理特殊字符、将Python对象转换为JSON和将JSON解析为Python对象。Python内置的json模块提供了丰富的JSON处理工具,可以轻松地处理JSON数据。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程