0Pricing
Python Academy · บทเรียน

การเข้ารหัสและถอดรหัส JSON

ใช้ json.loads, json.dumps และ json.load/dump สำหรับรับส่งข้อมูล JSON

การเข้ารหัสและถอดรหัส JSON เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

บทนำ

โมดูล json ของ Python แปลงระหว่างอ็อบเจ็กต์ Python กับสตริงหรือไฟล์ JSON ด้วยฟังก์ชันที่เรียบง่ายและสอดคล้องกัน

json.dumps()

json.dumps(obj) แปลงอ็อบเจ็กต์ Python เป็นสตริง JSON indent=2 จัดรูปแบบให้อ่านง่าย
import json
d = {'name': 'Alice', 'age': 30, 'active': True}
print(json.dumps(d, indent=2))

json.loads()

json.loads(s) แยกวิเคราะห์สตริง JSON เป็นอ็อบเจ็กต์ Python อ็อบเจ็กต์ JSON จะกลายเป็นพจนานุกรม และอาร์เรย์จะกลายเป็นรายการ
import json
s = '{"name": "Alice", "scores": [90, 85]}'
data = json.loads(s)
print(type(data), data['name'])

json.dump() ลงไฟล์

json.dump(obj, file_object) แปลงข้อมูลลงไฟล์โดยตรง ไม่จำเป็นต้องเก็บสตริงไว้ก่อน
import json, tempfile, os
tmp = tempfile.mktemp(suffix='.json')
with open(tmp, 'w') as f:
    json.dump({'x': 1}, f, indent=2)
print(open(tmp).read())
os.unlink(tmp)

json.load() จากไฟล์

json.load(file_object) แยกวิเคราะห์ JSON โดยตรงจากอ็อบเจ็กต์ไฟล์ที่เปิดอยู่
import json, io
buf = io.StringIO('{"key": "value"}')
data = json.load(buf)
print(data)

การจับคู่ประเภทของ JSON

อ็อบเจ็กต์ JSON→พจนานุกรม array→รายการ string→str number→int/float true/false→True/False null→None
import json
s = '[1, "two", true, null, {"a": 3.14}]'
print(json.loads(s))

ประเภทที่แปลงเป็น JSON ไม่ได้

datetime, set และ bytes ไม่สามารถแปลงเป็น JSON ได้ ให้ระบุฟังก์ชัน default= หรือสร้างคลาสย่อยของ JSONEncoder
import json
from datetime import datetime
def default(obj):
    if isinstance(obj, datetime):
        return obj.isoformat()
    raise TypeError(f'{type(obj)} not serializable')
print(json.dumps({'ts': datetime.now()}, default=default))

sort_keys และ separators

sort_keys=True จะเรียงลำดับคีย์ของพจนานุกรม separators=(',', ':') จะลบช่องว่างเพื่อให้เอาต์พุตกระชับ
import json
d = {'z': 3, 'a': 1, 'm': 2}
print(json.dumps(d, sort_keys=True, separators=(',', ':')))

การจัดรูปแบบให้อ่านง่าย

json.dumps(obj, indent=4, ensure_ascii=False) สร้าง JSON ที่มนุษย์อ่านได้ โดยคงอักขระ Unicode ไว้
import json
d = {'name': 'Mehmet', 'city': 'Istanbul'}
print(json.dumps(d, indent=4, ensure_ascii=False))

JSONDecodeError

json.loads(invalid) ทำให้เกิด json.JSONDecodeError ควรครอบการแยกวิเคราะห์อินพุตจากผู้ใช้ด้วย try/except เสมอ
import json
try:
    json.loads('{bad json}')
except json.JSONDecodeError as e:
    print(f'Parse error: {e}')

การอัปเดตไฟล์ JSON

อ่าน → แก้ไข → เขียนกลับ เป็นรูปแบบมาตรฐานสำหรับอัปเดตไฟล์การกำหนดค่า JSON
import json, io
buf = io.StringIO('{"count": 5}')
data = json.load(buf)
data['count'] += 1
print(json.dumps(data))

ตรวจสอบอย่างรวดเร็ว

ฟังก์ชันใดใช้แยกวิเคราะห์สตริง JSON เป็นอ็อบเจ็กต์ Python

สรุป

ใช้ json.dumps/loads สำหรับสตริง และ json.dump/load สำหรับไฟล์ ประเภทต่าง ๆ ได้แก่ object→dict, array→list, null→None การแปลงข้อมูลแบบกำหนดเองทำได้ผ่านฟังก์ชัน default=

เรียนรู้ต่อไป

ทำต่อไปนะครับ ไปยังบทเรียนถัดไปได้เลย

คำถามที่พบบ่อย

บทเรียน “การเข้ารหัสและถอดรหัส JSON” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การเข้ารหัสและถอดรหัส JSON” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การเข้ารหัสและถอดรหัส JSON”

ใช้ json.loads, json.dumps และ json.load/dump สำหรับรับส่งข้อมูล JSON คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “การเข้ารหัสและถอดรหัส JSON” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม

ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การเข้ารหัสและถอดรหัส JSON
  2. การจัดการโครงสร้าง JSON ซ้อนกัน
  3. การอ่าน CSV ด้วย csv.reader
  4. การเขียน CSV ด้วย csv.DictWriter
← กลับไปที่ Python Academy