오래된 프로그래머의 요즘 이야기

그리고 소소한 일상들...

허니의 소소한 일상들이 켜켜이 쌓여가고......

Tech Story

[Python] Dictionary 와 JSon 비교 및 변환

쭝허니 2025. 5. 31. 21:30

야! 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()` 함수만 알면 웹 개발할 때 데이터 주고받는 게 훨씬 수월해질 거야!