一、JSON的基础知识
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,与XML类似,但比XML更轻巧、更快速,也易于人类阅读和编写。JSON采用键值对的方式存储数据,使用简单,语法规则简单明了,可被多种编程语言轻松解析和生成。
JSON格式由两种数据类型构成:键/值对和数组。键/值对表示一个对象的属性,数组则是多个对象的集合。下面是一个JSON格式示例:
{ "name": "John", "age": 30, "city": "New York", "scores": [90, 85, 95] }
其中,每个键/值对都由一个键和一个值组成,以冒号分隔,每个键/值对之间使用逗号分隔。对于数组,每个元素之间也使用逗号分隔。
二、Python解析JSON的方法
Python中内置了json模块,可以方便地解析JSON数据。主要有两种方法:
1. json.loads()
使用json.loads()方法可以将JSON字符串转换为Python对象。例如,我们有以下JSON字符串:
{ "name": "John", "age": 30, "city": "New York", "scores": [90, 85, 95] }
使用json.loads()方法将字符串转为Python对象:
import json json_str = '{"name": "John", "age": 30, "city": "New York", "scores": [90, 85, 95]}' python_obj = json.loads(json_str) print(python_obj)
输出结果如下:
{'name': 'John', 'age': 30, 'city': 'New York', 'scores': [90, 85, 95]}
2. json.dump()和json.load()
使用json.dump()方法将Python对象转换为JSON字符串,并将其写入文件,使用json.load()方法从文件中读取JSON字符串并转换为Python对象。例如,我们有以下Python对象:
python_obj = { "name": "John", "age": 30, "city": "New York", "scores": [90, 85, 95] }
将Python对象写入JSON文件:
import json with open('data.json', 'w') as f: json.dump(python_obj, f)
从JSON文件中读取Python对象:
import json with open('data.json', 'r') as f: python_obj = json.load(f) print(python_obj)
输出结果与前面一致:
{'name': 'John', 'age': 30, 'city': 'New York', 'scores': [90, 85, 95]}
三、使用Python解析JSON
1. 解析本地JSON文件
我们可以在本地创建一个JSON文件,然后使用Python解析它。例如,创建一个名为data.json的文件,内容如下:
{ "name": "John", "age": 30, "city": "New York", "scores": [90, 85, 95] }
使用Python读取并解析该文件:
import json with open('data.json', 'r') as f: data = json.load(f) print(data['name']) print(data['age']) print(data['city']) print(data['scores'])
输出结果如下:
John 30 New York [90, 85, 95]
2. 解析来自API的JSON数据
使用Python解析从API获取的JSON数据同样比较简单。例如,我们使用requests模块从GitHub API获取一个用户的信息,然后解析JSON数据:
import requests import json url = 'https://api.github.com/users/octocat' response = requests.get(url) data = json.loads(response.text) print(data['login']) print(data['name']) print(data['company']) print(data['followers'])
输出结果如下:
octocat The Octocat GitHub 22284
四、小结
本文介绍了JSON的基础知识和Python解析JSON的方法。着重介绍了使用Python读取本地JSON文件和从API获取JSON数据并解析的方法,并提供了具体示例代码,希望能帮助大家更好地使用Python处理JSON数据。