0Pricing
Python Academy · 강의

JSON 인코딩과 디코딩

JSON 입출력에 json.loads, json.dumps 및 json.load/dump를 사용합니다.

JSON 인코딩과 디코딩은(는) CoddyKit의 무료 Python Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Python Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Python Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

소개

Python의 json 모듈은 간단하고 일관된 함수로 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 객체는 dict가 되고 배열은 list가 됩니다.
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 object→dict. array→list. 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))

직렬화할 수 없는 유형

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는 dict 키를 정렬합니다. 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을 생성합니다.
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 인코딩과 디코딩” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Python Academy 강의 전체를 잠금 해제할 수 있습니다. Python Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“JSON 인코딩과 디코딩”에서 뭘 배우나요?

JSON 입출력에 json.loads, json.dumps 및 json.load/dump를 사용합니다. 브라우저에서 직접 실행하는 실습 코드로 Python Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Python Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Python Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“JSON 인코딩과 디코딩” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Python Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Python Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. JSON 인코딩과 디코딩
  2. 중첩 JSON 구조 처리
  3. csv.reader로 CSV 읽기
  4. csv.DictWriter로 CSV 작성하기
← Python Academy(으)로 돌아가기