Python에서 JSON 데이터를 다루려면 먼저 JSON 형식의 문자열을 Python이 이해할 수 있는 객체(딕셔너리, 리스트 등)로 변환해야 합니다. 이 작업은 표준 라이브러리인 json 모듈을 임포트한 후, json.loads() 메서드를 사용하면 간단하게 처리할 수 있습니다.
json.loads()란?
json.loads()는 'load string'의 약자로, JSON 형식의 문자열을 입력받아 이를 Python 객체로 변환(deserialization)하는 함수입니다. 변환 결과는 일반적으로 딕셔너리(dict) 또는 리스트(list) 형태가 되며, 이후 일반적인 Python 문법으로 자유롭게 데이터에 접근할 수 있습니다.
예제 코드
import json
json_string = '{"name": "Sonali", "age": 21, "designation": "Software developer"}'
# 변환 전: 문자열(str) 타입 확인
print(type(json_string))
def func(strng):
a = json.loads(strng) # JSON 문자열 → Python 딕셔너리 변환
print(type(a)) # 변환 후 타입 확인
print(a)
func(json_string)실행 결과
<class 'str'>
<class 'dict'>
{'age': 21, 'name': 'Sonali', 'designation': 'Software developer'}결과 분석
위 코드의 실행 흐름을 살펴보면 다음과 같습니다.
- 처음
json_string은 따옴표로 묶인 문자열(str)입니다. json.loads()를 거치면서 키-값 쌍으로 구성된 딕셔너리(dict)로 변환됩니다.- 변환된 딕셔너리는
a['name'],a['age']처럼 일반적인 방식으로 각 값에 접근할 수 있습니다.
참고 사항
반대로 Python 객체를 JSON 문자열로 변환할 때는 json.dumps() 메서드를 사용합니다. 즉, loads는 읽어들이기(문자열 → 객체), dumps는 내보내기(객체 → 문자열)라고 기억하면 됩니다. 또한 파일 입출력 시에는 각각 json.load()와 json.dump()를 활용하면 파일 전체를 한 번에 처리할 수 있습니다.