Python:
การทำงานกับ JSON

วิธีการ:

ไลบรารี json ที่มาพร้อมกับ Python ทำให้กระบวนการเข้ารหัส (การแปลงวัตถุ 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 ที่ซับซ้อน เช่น การตรวจสอบโครงสร้างหรือการแปลงไฟล์ JSON โดยตรงจาก URL ไลบรารีเช่น requests สำหรับการร้องขอ HTTP และ jsonschema สำหรับการตรวจสอบสามารถช่วยได้

ตัวอย่างด้วย requests เพื่อแปลงข้อมูล JSON จาก URL:

import requests

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

print(data)

สแนปช็อตนี้ดึงข้อมูล JSON จาก URL ที่กำหนดและแปลงโดยตรงเป็นวัตถุ 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("ข้อมูล JSON ถูกต้อง")
except jsonschema.exceptions.ValidationError as err:
    print("ข้อผิดพลาดในการตรวจสอบ:", err)

ตัวอย่างนี้ทำการตรวจสอบพจนานุกรม Python ของคุณ (ที่ได้มาจากการถอดรหัสข้อมูล JSON) กับโครงสร้างที่กำหนดไว้ล่วงหน้า เพื่อให้แน่ใจว่าข้อมูลสอดคล้องกับรูปแบบและประเภทที่คาดหวัง