การจัดการโครงสร้าง JSON ซ้อนกัน
นำทางและแปลงออบเจ็กต์ JSON ที่ซ้อนกันอย่างซับซ้อน
การจัดการโครงสร้าง JSON ซ้อนกัน เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน
บทนำ
การเข้าถึงคีย์ที่ซ้อนกัน
import json
data = {'user': {'address': {'city': 'NYC', 'zip': '10001'}}}
print(data['user']['address']['city'])การเข้าถึงข้อมูลซ้อนกันอย่างปลอดภัย
data = {'user': {'name': 'Alice'}}
city = data.get('user', {}).get('address', {}).get('city', 'unknown')
print(city)การวนซ้ำอาร์เรย์ของอ็อบเจ็กต์
import json
data = json.loads('[{"name":"Alice"},{"name":"Bob"}]')
for user in data:
print(user['name'])การทำ JSON ที่ซ้อนกันให้แบนราบ
def flatten(d, prefix=''):
result = {}
for k, v in d.items():
key = f'{prefix}.{k}' if prefix else k
if isinstance(v, dict):
result.update(flatten(v, key))
else:
result[key] = v
return result
print(flatten({'a': {'b': {'c': 1}}, 'd': 2}))การกรองอาร์เรย์
data = [{'name':'A','active':True},{'name':'B','active':False}]
active = [u for u in data if u.get('active')]
print(active)การแปลงข้อมูลที่ซ้อนกัน
data = [{'id': 1, 'name': 'Alice'}, {'id': 2, 'name': 'Bob'}]
names = [d['name'] for d in data]
print(names)การตรวจสอบสคีมาด้วย jsonschema
# from jsonschema import validate
# schema = {'type':'object','required':['name']}
# validate({'name':'Alice'}, schema) # OK
# validate({}, schema) # raises ValidationError
print('schema validation demo')การอัปเดตพจนานุกรมที่ซ้อนกันหลายชั้น
def deep_update(base, override):
for k, v in override.items():
if isinstance(v, dict) and isinstance(base.get(k), dict):
deep_update(base[k], v)
else:
base[k] = v
return base
result = deep_update({'a': {'x': 1}}, {'a': {'y': 2}})
print(result)การสืบค้นแบบ jq ด้วย Python
def find_all(obj, key):
if isinstance(obj, dict):
if key in obj: yield obj[key]
for v in obj.values(): yield from find_all(v, key)
elif isinstance(obj, list):
for item in obj: yield from find_all(item, key)
data = {'a': {'name': 'x'}, 'b': [{'name': 'y'}]}
print(list(find_all(data, 'name')))การทำให้เป็นอนุกรมเป็น NDJSON
import json
objects = [{'id': 1}, {'id': 2}, {'id': 3}]
ndjson = '\n'.join(json.dumps(o) for o in objects)
print(ndjson)ตรวจสอบอย่างรวดเร็ว
สรุปทบทวน
เดินหน้าต่อ
คำถามที่พบบ่อย
บทเรียน “การจัดการโครงสร้าง JSON ซ้อนกัน” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การจัดการโครงสร้าง JSON ซ้อนกัน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การจัดการโครงสร้าง JSON ซ้อนกัน”
นำทางและแปลงออบเจ็กต์ JSON ที่ซ้อนกันอย่างซับซ้อน คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การจัดการโครงสร้าง JSON ซ้อนกัน” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม
ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การเข้ารหัสและถอดรหัส JSON
- การจัดการโครงสร้าง JSON ซ้อนกัน
- การอ่าน CSV ด้วย csv.reader
- การเขียน CSV ด้วย csv.DictWriter