Python을 배우기 시작한 초보자들은 JSON 형식과 Python Dictionary가 헷갈릴 수 있습니다. 두 형식 모두 {} 중괄호를 사용하고, key:value 구조로 데이터를 표현하지만, 실제로는 용도와 문법에서 차이가 있습니다. 이번 글에서는 JSON과 Dictionary의 공통점, 차이점, 그리고 Python에서 JSON과 Dictionary 간 변환 방법을 설명합니다.
1. JSON과 Python Dictionary의 공통점
JSON과 Python Dictionary는 모두 데이터를 키-값 쌍으로 표현한다는 점에서 공통점이 있습니다. 이러한 유사성 때문에 초보자들이 동일하게 느끼는 경우가 많습니다.
주요 공통점
- 키-값 구조: 두 형식 모두 데이터를
{key: value}
형식으로 저장합니다. - 중첩 구조 지원: 내부적으로 리스트, 다른 객체 등을 중첩하여 데이터를 표현할 수 있습니다.
예시
JSON 형식:
{
"name": "Alice",
"age": 25,
"skills": ["Python", "Django"]
}
Python Dictionary:
person = {
"name": "Alice",
"age": 25,
"skills": ["Python", "Django"]
}
2. JSON과 Python Dictionary의 차이점
JSON과 Dictionary는 겉보기에는 비슷하지만, 문법과 사용 목적에서 차이가 있습니다.
2.1 사용 목적의 차이
- JSON: 데이터를 교환하기 위한 언어 독립적인 표준 포맷입니다. Python 외에도 JavaScript, Java, C++ 등 다양한 언어에서 데이터를 주고받는 데 사용됩니다.
- Python Dictionary: Python 내부에서 데이터를 저장하고 조작하기 위한 Python 전용 데이터 구조입니다.
2.2 문법적인 차이
JSON은 Python Dictionary와 다음과 같은 문법 차이가 있습니다:
특징 | JSON | Python Dictionary |
---|---|---|
문자열 표기 | 문자열은 반드시 " 로 표기 |
문자열은 ' 또는 " 모두 사용 가능 |
키의 타입 | 키는 반드시 문자열이어야 함 | 키는 문자열, 숫자 등 다양한 타입 가능 |
값의 타입 | 제한적 (문자열, 숫자, 배열 등) | 제한 없음 (함수, 객체 등 포함 가능) |
Boolean 값 | true , false |
True , False |
null 값 | null |
None |
주석 | 주석 지원하지 않음 | 주석 사용 가능 |
예시로 보는 차이점
JSON:
{
"name": "Alice",
"age": 25,
"isActive": true,
"nickname": null
}
Python Dictionary:
person = {
"name": "Alice",
"age": 25,
"isActive": True, # 주석 가능
"nickname": None
}
위 예시에서:
- JSON에서는
true
,false
,null
을 소문자로 표기하지만, - Python에서는
True
,False
,None
처럼 첫 글자를 대문자로 표기합니다.
3. Python Dictionary와 JSON 간 변환
Python에서는 json
모듈을 사용하여 JSON과 Dictionary 간의 변환을 간단히 수행할 수 있습니다.
3.1 Dictionary → JSON 변환
json.dumps()
를 사용하여 Python Dictionary를 JSON 문자열로 변환할 수 있습니다.
import json
person = {
"name": "Alice",
"age": 25,
"isActive": True,
"nickname": None
}
json_data = json.dumps(person)
print(json_data)
출력:
{"name": "Alice", "age": 25, "isActive": true, "nickname": null}
3.2 JSON → Dictionary 변환
json.loads()
를 사용하면 JSON 문자열을 Python Dictionary로 변환할 수 있습니다.
import json
json_data = '{"name": "Alice", "age": 25, "isActive": true, "nickname": null}'
person = json.loads(json_data)
print(person)
출력:
{'name': 'Alice', 'age': 25, 'isActive': True, 'nickname': None}
3.3 JSON 데이터 파일 저장 및 읽기
JSON 데이터를 파일로 저장하기
import json
data = {"name": "Alice", "age": 25, "isActive": True}
with open("data.json", "w") as file:
json.dump(data, file, indent=4) # indent 옵션 사용
indent 옵션 사용 결과:
- indent 없이 저장:
{"name": "Alice","age":25,"isActive":true}
- indent=4로 저장:
{ "name": "Alice", "age": 25, "isActive": true }
JSON 파일 읽기
import json
with open("data.json", "r") as file:
data = json.load(file)
print(data)
출력:
{'name': 'Alice', 'age': 25, 'isActive': True}

결론
JSON과 Python Dictionary는 비슷한 구조를 가지고 있지만, 용도와 문법에서 차이가 있습니다. JSON은 데이터 교환을 위한 표준 형식이고, Python Dictionary는 Python 코드 내에서 데이터를 조작하는 데 적합합니다. Python의 json
모듈을 사용하면 JSON과 Dictionary 간의 변환이 매우 쉬우니, 목적에 맞게 활용하세요!
추가 팁
- JSON 파일 저장 시
indent
옵션을 사용하면 사람이 읽기 쉬운 파일을 생성할 수 있습니다. 데이터 파일을 다룰 때는 가독성이 중요하니 꼭 활용하세요. - JSON과 Dictionary 변환 시 Boolean 값과
null
/None
의 차이를 항상 염두에 두세요.
Add a New Comment