欢迎访问宙启技术站
智能推送

Python中常用的JSON解析和生成函数

发布时间:2023-06-05 14:37:13

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