JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据传输以及配置文件的存储。Python提供了丰富的库和方法来操作JSON数据,本文将从多个方面介绍Python操作JSON的方法及示例。
一、将JSON转换为Python对象
1、使用json.loads()方法将JSON字符串转换为Python对象。
import json json_str = '{"name": "John", "age": 30, "city": "New York"}' python_obj = json.loads(json_str) print(python_obj)
输出结果:
{'name': 'John', 'age': 30, 'city': 'New York'}
2、使用json.load()方法从文件中读取JSON数据,并转换为Python对象。
import json with open('data.json', 'r') as f: python_obj = json.load(f) print(python_obj)
注意:需要提前准备一个名为data.json的JSON文件。
二、将Python对象转换为JSON
1、使用json.dumps()方法将Python对象转换为JSON字符串。
import json python_obj = {'name': 'John', 'age': 30, 'city': 'New York'} json_str = json.dumps(python_obj) print(json_str)
输出结果:
{"name": "John", "age": 30, "city": "New York"}
2、使用json.dump()方法将Python对象转换为JSON,并存储到文件中。
import json python_obj = {'name': 'John', 'age': 30, 'city': 'New York'} with open('data.json', 'w') as f: json.dump(python_obj, f)
注意:转换和保存的对象需要是Python的基本数据类型,如字典、列表、字符串等。
三、访问和修改JSON数据
1、通过索引或键访问JSON对象中的属性。
import json json_str = '{"name": "John", "age": 30, "city": "New York"}' python_obj = json.loads(json_str) name = python_obj['name'] age = python_obj.get('age') print(name, age)
输出结果:
John 30
2、修改JSON对象的属性值。
import json json_str = '{"name": "John", "age": 30, "city": "New York"}' python_obj = json.loads(json_str) python_obj['age'] = 40 print(python_obj)
输出结果:
{'name': 'John', 'age': 40, 'city': 'New York'}
四、处理嵌套结构的JSON数据
1、访问嵌套结构的JSON对象。
import json json_str = '{"name": "John", "age": 30, "city": {"name": "New York", "population": 8000000}}' python_obj = json.loads(json_str) city_name = python_obj['city']['name'] population = python_obj['city'].get('population') print(city_name, population)
输出结果:
New York 8000000
2、修改嵌套结构的JSON对象。
import json json_str = '{"name": "John", "age": 30, "city": {"name": "New York", "population": 8000000}}' python_obj = json.loads(json_str) python_obj['city']['population'] = 9000000 print(python_obj)
输出结果:
{'name': 'John', 'age': 30, 'city': {'name': 'New York', 'population': 9000000}}
五、处理JSON数组
1、访问JSON数组的元素。
import json json_str = '[{"name": "John", "age": 30}, {"name": "Jane", "age": 25}]' python_obj = json.loads(json_str) first_person_name = python_obj[0]['name'] second_person_age = python_obj[1].get('age') print(first_person_name, second_person_age)
输出结果:
John 25
2、修改JSON数组的元素。
import json json_str = '[{"name": "John", "age": 30}, {"name": "Jane", "age": 25}]' python_obj = json.loads(json_str) python_obj[0]['age'] = 35 print(python_obj)
输出结果:
[{'name': 'John', 'age': 35}, {'name': 'Jane', 'age': 25}]
六、处理复杂JSON数据
对于复杂的JSON数据,可以使用递归或循环的方式进行访问和修改。
import json json_str = '{"name": "John", "age": 30, "city": {"name": "New York", "population": 8000000}, "languages": ["Python", "JavaScript", "Java"]}' def traverse(obj): if isinstance(obj, dict): for key, value in obj.items(): print(key, value) traverse(value) elif isinstance(obj, list): for item in obj: traverse(item) python_obj = json.loads(json_str) traverse(python_obj)
输出结果:
name John age 30 city {'name': 'New York', 'population': 8000000} name New York population 8000000 languages ['Python', 'JavaScript', 'Java'] Python JavaScript Java
以上为Python操作JSON的各种方法及示例,希望能对您学习和使用JSON提供帮助。
原创文章,作者:TXJP,如若转载,请注明出处:https://www.beidandianzhu.com/g/7721.html