python json 모듈에서 가장 중요한 함수는 dumps() 함수와 loads() 함수입니다. 이 두 함수는 API에 request 날리고 response 받을 때 많이 사용하게 되는 함수들입니다. 일단 빠르게 정리하고 시작하겠습니다.
json.dumps() vs json.loads()
json.dumps(): 파이썬 딕셔너리 -> JSON 문자열
json.loads(): JSON 문자열 -> 파이썬 딕셔너리
load 물건을 싣다... 파이썬에서 처리할 수 있게 가져오는 거니...
dump 내버리다... 이제 파이썬 밖 세상으로 내보내는 거니...
위 두 함수를 사용하는 간단한 예시 코드는 다음과 같습니다. 당연히 json 모듈을 import 해야지 사용할 수 있습니다.
import json
json_string = '''{
"name": "Tom",
"age": 31,
"married": false,
"hobbies": [
"Soccer",
"Coding",
"Piano"
]
}'''
json_object = json.loads(json_string)
print(json_object)
print(type(json_object))
json_string = json.dumps(json_object)
print(json_string)
print(type(json_string))
만약 dumps() 함수를 사용하여 JSON 문자열으로 변환할 때 2칸의 들여쓰기를 넣어줘서 조금 더 보기 좋은 구조를 갖게 하려면 indent=2를 추가로 전달해주면 됩니다.
json_string = json.dumps(json_object, indent=2)
한글 깨지는 경우 대처 방법
한글이 포함되어 있는 경우 json.dumps() 결과를 보면 다음과 같이 깨져있을 것입니다.
import json
dict1 = {
"name": "심교훈",
"age": 35,
"married": True,
"hobbies": [
"축구시청",
"코딩",
"유튜브시청",
"자전거"
]
}
json_string1 = json.dumps(dict1, indent=2)
print(json_string1)
이런 경우에는 ensure_ascii를 False로 설정해주면 됩니다.
json_string1 = json.dumps(dict1, indent=2, ensure_ascii=False)
관련 글
- [AWS] boto3 SageMaker에 배포된 모델에 추론 요청 날리는 방법
'Dev > python' 카테고리의 다른 글
[python] 타입 힌트와 관련하여 중요한 모듈인 typing을 알아보자 (0) | 2023.05.24 |
---|---|
[python] 오늘 날짜, 어제 날짜, 일주일 전 날짜 구하는 방법(datetime 모듈) (0) | 2023.05.19 |
[pandas] 데이터프레임의 특정 컬럼의 평균값 구하는 방법, df['컬럼명'].mean() (0) | 2023.05.18 |
[python] 내부망(폐쇄망)에 .whl 파일을 통해서 패키지 설치하는 방법 (0) | 2023.05.17 |
[python] 사설 저장소(nexus) 통해 pip install 하는 방법 (0) | 2023.04.27 |
[python] 얕은 복사와 깊은 복사, 이거 모르면 큰일남 (0) | 2023.03.18 |
[pandas] dataframe 특정 컬럼 값에 일괄적으로 함수 적용, apply 메소드 (0) | 2023.03.17 |
[pandas] 데이터프레임을 to_csv() 메소드로 csv 파일로 저장할 때 한글 깨짐 문제 해결 방법 (0) | 2023.03.15 |