Python:
使用JSON进行编程

如何操作:

Python 内置的 json 库简化了编码(将 Python 对象转换为 JSON)和解码(将 JSON 转换为 Python 对象)的过程。以下是您如何使用它的方法:

将 Python 对象编码为 JSON:

import json

data = {
    "name": "John Doe",
    "age": 30,
    "isEmployee": True,
    "addresses": [
        {"city": "New York", "zipCode": "10001"},
        {"city": "San Francisco", "zipCode": "94016"}
    ]
}

json_string = json.dumps(data, indent=4)
print(json_string)

输出:

{
    "name": "John Doe",
    "age": 30,
    "isEmployee": true,
    "addresses": [
        {
            "city": "New York",
            "zipCode": "10001"
        },
        {
            "city": "San Francisco",
            "zipCode": "94016"
        }
    ]
}

将 JSON 解码为 Python 对象:

json_string = '''
{
    "name": "John Doe",
    "age": 30,
    "isEmployee": true,
    "addresses": [
        {
            "city": "New York",
            "zipCode": "10001"
        },
        {
            "city": "San Francisco",
            "zipCode": "94016"
        }
    ]
}
'''

data = json.loads(json_string)
print(data)

输出:

{
    'name': 'John Doe', 
    'age': 30, 
    'isEmployee': True, 
    'addresses': [
        {'city': 'New York', 'zipCode': '10001'}, 
        {'city': 'San Francisco', 'zipCode': '94016'}
    ]
}

使用第三方库:

对于复杂的 JSON 处理,比如架构验证或直接从URL解析JSON文件,例如使用 requests 库进行HTTP请求和使用 jsonschema 库进行验证,可能会很有帮助。

使用 requests 从 URL 解析 JSON 的示例:

import requests

response = requests.get('https://api.example.com/data')
data = response.json()

print(data)

这段代码从给定的 URL 获取 JSON 数据并直接将其转换为 Python 对象。

使用 jsonschema 验证 JSON:

首先,通过 pip 安装库:

pip install jsonschema

然后,按照以下方式使用它:

from jsonschema import validate
import jsonschema

schema = {
    "type": "object",
    "properties": {
        "name": {"type": "string"},
        "age": {"type": "number"},
        "isEmployee": {"type": "boolean"},
    },
    "required": ["name", "age", "isEmployee"]
}

# 假设 `data` 是从 JSON 解码获得的字典
try:
    validate(instance=data, schema=schema)
    print("Valid JSON data.")
except jsonschema.exceptions.ValidationError as err:
    print("Validation error:", err)

这个示例对您的 Python 字典(从解码的 JSON 数据获得)根据预定义的架构进行验证,确保数据符合预期的格式和类型。