야! Python 딕셔너리, JSON으로 변환하는 거 졸라 쉽다!
오늘은 Python에서 딕셔너리를 JSON으로 변환하는 방법에 대해 얘기해볼까 해. 웹 개발하다 보면 Python으로 백엔드 짜고, 자바스크립트로 프론트엔드 짜는 경우가 많은데, 이때 데이터 주고받는 게 좀 귀찮잖아? 그럴 때 JSON이 딱인데, Python 딕셔너리랑 JSON 변환하는 게 얼마나 쉬운지 보여줄게!
**1. 왜 JSON이 필요할까?**
API로 데이터 주고받을 때 JSON 형식 많이 쓰잖아? Python에선 딕셔너리가 JSON이랑 엄청 비슷하게 생겨서 변환하기 편해. 자바스크립트에서도 JSON 다루기 쉽고, 다른 언어들도 마찬가지야. 그래서 데이터 교환에 딱이지!
**2. Python 딕셔너리 -> JSON 변환: `json.dumps()`**
자, 이제 본격적으로 코드를 볼까? 일단 `json` 모듈을 불러와야 해. 그리고 `json.dumps()` 함수를 이용하면 딕셔너리를 JSON 문자열로 변환할 수 있어.
```python
import json
# 딕셔너리 생성
my_dict = {
'name': '철수',
'age': 30,
'city': '서울'
}
# 딕셔너리를 JSON 문자열로 변환
json_string = json.dumps(my_dict, ensure_ascii=False) # ensure_ascii=False는 한글깨짐 방지!
# 결과 출력
print(f"딕셔너리: {my_dict}")
print(f"JSON 문자열: {json_string}")
print(f"데이터 타입: {type(json_string)}")
```
**(이미지 삽입: 코드 실행 결과 스크린샷)**
자, 실행해보면 `json_string`에는 JSON 형태의 문자열이 들어있어. `type(json_string)`을 보면 `<class 'str'>`이라고 나오는걸 확인할 수 있지. 딕셔너리랑 다르게 문자열이 됐다는 뜻이야. 그래서 딕셔너리처럼 `json_string['name']` 이렇게 접근하면 에러가 나!
**3. JSON -> Python 딕셔너리 변환: `json.loads()`**
반대로 JSON 문자열을 다시 Python 딕셔너리로 변환하고 싶으면 `json.loads()` 함수를 사용하면 돼. 아주 간단하지?
```python
import json
json_string = '{"name": "철수", "age": 30, "city": "서울"}'
# JSON 문자열을 딕셔너리로 변환
my_dict = json.loads(json_string)
# 결과 출력
print(f"JSON 문자열: {json_string}")
print(f"딕셔너리: {my_dict}")
print(f"데이터 타입: {type(my_dict)}")
```
**(이미지 삽입: 코드 실행 결과 스크린샷)**
이번엔 `my_dict`의 타입이 `<class 'dict'>`로 나오는 걸 볼 수 있지? 이제 다시 딕셔너리처럼 `my_dict['name']` 이렇게 접근해서 값을 꺼낼 수 있어!
**4. 더 자세한 내용은?**
Python 공식 문서에도 `json` 모듈에 대한 설명이 자세하게 나와있어. 궁금한 점 있으면 [https://docs.python.org/3/library/json.html](https://docs.python.org/3/library/json.html) 여기서 확인해봐! (Python 3 기준 링크임!)
**5. 마무리**
Python 딕셔너리와 JSON 변환, 생각보다 엄청 쉽지? `json.dumps()`와 `json.loads()` 함수만 알면 웹 개발할 때 데이터 주고받는 게 훨씬 수월해질 거야!
'Tech Story' 카테고리의 다른 글
[Python] 배열 복사 (흔히 하는 실수?) (0) | 2025.05.31 |
---|---|
[Python] Flask vs Django 특징 및 장단점 비교 (0) | 2025.05.31 |
[SQL] SQL vs No-SQL (1) | 2025.05.31 |
[Flutter] 대화상자에서 setState() 사용 (0) | 2025.05.31 |
[Flutter] RestfulAPI 호출 방법 (Debugging & Release Mode) (0) | 2025.05.31 |