Python中常用的JSON解析和生成函数
Python中常用的JSON解析和生成函数是用于处理JSON格式数据的第三方库。JSON是JavaScript Object Notation的缩写,是一种轻量级且易于读写的数据格式,常用于Web应用程序中。JSON数据可以是数组、对象、字符串、数字、布尔值、null等类型。
在Python中,处理JSON数据主要有两个常用的库:json和simplejson。下面我们将介绍这两个库的基本用法和常用函数。
1. json库
json库是Python标准库中提供的一个JSON解析和生成库,使用起来非常方便。它提供了两个函数:
(1) json.dumps():将Python对象转换为JSON格式的字符串。
import json
data = {"name": "Tom", "age": 18, "gender": "male"}
json_str = json.dumps(data)
print(json_str) # {"name": "Tom", "age": 18, "gender": "male"}
(2) json.loads():将JSON格式的字符串转换为Python对象。
import json
json_str = '{"name": "Tom", "age": 18, "gender": "male"}'
data = json.loads(json_str)
print(data) # {'name': 'Tom', 'age': 18, 'gender': 'male'}
2. simplejson库
simplejson是Python中处理JSON数据的第三方库,其使用方法和json库基本相同,只是其性能更好。在使用simplejson库前需要先安装。
pip install simplejson
simplejson提供了多个函数,其中较为常用的有如下几个:
(1) simplejson.dumps()
simplejson.dumps()函数用于将Python对象序列化为JSON格式的字符串。
import simplejson as json
data = {"name": "Tom", "age": 18, "gender": "male"}
json_str = json.dumps(data)
print(json_str) # {"name": "Tom", "age": 18, "gender": "male"}
(2) simplejson.dump()
simplejson.dump()函数用于将Python对象按照JSON格式写入到文件中。
import simplejson as json
data = {"name": "Tom", "age": 18, "gender": "male"}
with open("data.json", "w") as f:
json.dump(data, f)
(3) simplejson.load()
simplejson.load()函数用于从文件中读取JSON数据,并将其解析为Python对象。
import simplejson as json
with open("data.json", "r") as f:
data = json.load(f)
print(data) # {'name': 'Tom', 'age': 18, 'gender': 'male'}
(4) simplejson.loads()
simplejson.loads()函数用于将JSON格式的字符串解析为Python对象。
import simplejson as json
json_str = '{"name": "Tom", "age": 18, "gender": "male"}'
data = json.loads(json_str)
print(data) # {'name': 'Tom', 'age': 18, 'gender': 'male'}
(5) simplejson.JSONEncoder()
simplejson.JSONEncoder()是simplejson库中的一个类,用于将Python对象序列化为JSON格式的字符串。
import simplejson as json
class Person:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
person = Person("Tom", 18, "male")
json_str = json.dumps(person.__dict__, ensure_ascii=False)
print(json_str) # {"name": "Tom", "age": 18, "gender": "male"}
(6) simplejson.JSONDecoder()
simplejson.JSONDecoder()是simplejson库中的一个类,用于将JSON格式的字符串解析为Python对象。
import simplejson as json
class Person:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
json_str = '{"name": "Tom", "age": 18, "gender": "male"}'
data = json.loads(json_str, object_hook=lambda d: Person(**d))
print(data.name) # Tom
print(data.age) # 18
print(data.gender) # male
