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) กับโครงสร้างที่กำหนดไว้ล่วงหน้า เพื่อให้แน่ใจว่าข้อมูลสอดคล้องกับรูปแบบและประเภทที่คาดหวัง