下面是“Python JSON格式数据的提取和保存的实现”的完整攻略。
JSON格式概述
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON使用Unicode字符集,支持数字、字符串、布尔值、null、数组和对象,具有较高的可读性。
提取JSON数据
在Python中提取JSON数据主要涉及到两个模块:json和urllib。其中json模块用于解析JSON格式文件,urllib模块用于网络请求数据。
1. 解析JSON格式文件
import json
with open('data.json', 'r') as f:
data = json.load(f)
print(data)
此代码可以打开JSON格式的文件data.json,并将其中的数据解析为Python对象后存储在变量data中。如果要访问特定键的值,可以使用data[key]来取得。
2. 获取网络上JSON数据
import json
import urllib.request
url = 'http://example.com/data.json'
response = urllib.request.urlopen(url)
data = response.read()
encoding = response.info().get_content_charset('utf-8')
json_data = json.loads(data.decode(encoding))
print(json_data)
此代码可以获取指定URL上的JSON数据并解析为Python对象后存储在变量json_data中。
保存JSON数据
Python中保存JSON数据需要使用json模块中的dump方法。其中,dump方法的第一个参数是要保存的数据,第二个参数是目的文件的路径。
import json
data = {'name': 'Tom', 'age': 28}
with open('data.json', 'w') as f:
json.dump(data, f)
此代码可以将Python对象data的内容保存为JSON格式的文件data.json。
示例说明
示例1:提取网络上的JSON数据
例如,我们要提取豆瓣电影Top250的数据,并展示每个电影的名字和演员。
import json
import urllib.request
url = 'https://api.douban.com/v2/movie/top250'
response = urllib.request.urlopen(url)
data = response.read()
encoding = response.info().get_content_charset('utf-8')
json_data = json.loads(data.decode(encoding))
for movie in json_data['subjects']:
print('电影名:{},演员:{}'.format(movie['title'], ','.join([actor['name'] for actor in movie['casts']])))
此代码可以获取豆瓣电影Top250的数据,并输出每个电影的名字和演员。
示例2:保存Python对象为JSON格式文件
例如,我们要将一个Person类的对象保存为JSON格式的文件。
import json
class Person:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
person = Person('Tom', 28, 'man')
with open('person.json', 'w') as f:
json.dump(person.__dict__, f)
此代码可以创建一个Person类的实例person,然后将其保存为JSON格式的文件person.json。注意,保存的是实例的字典形式,需要使用person.__dict__来获取。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python JSON格式数据的提取和保存的实现 - Python技术站