python으로 Json 데이터를 인코딩, 디코딩하는 방법을 알아보자.
Json
JSON은 Javascript Object Notation의 약자로 웹 브라우저와 웹 서버 사이에서 데이터 교환 시 널리 사용하고 있다. 가장 많이 사용되는 JSON 포맷은 key-value pair 컬렌션이다.
먼저, Json 데이터 타입에 대해 알아보면, json은 다음 중 하나 또는 여러개의 데이터 타입을 포함할 수 있다.
- string
- number
- object(JSON object)
- array
- boolean
- null
그리고 다음 데이터 타입은 포함하지 못 한다.
- function
- date
- undefined
JSON 인코딩/디코딩
Python Object를 Json 문자열로 변경하는 과정을 Json 인코딩이라고 부르고,
Json 오브젝트를 python 데이터 타입으로 변경하는 과정을 디코딩이라고 한다.
1) 파일로 불러오는 경우
// example.json
{
book = {
'id' = 1,
'title' = '파이썬 알고리즘 인터뷰',
'author' = '박상길',
'active' = true,
'date' = '200801'
}
}
# example.python
import json
with open('example.json', "r") as json_file:
json_data = json.load(json_file)
2) String으로 입력하는 경우
json 라이브러리 import 하고, json.dumps()
를 사용해 Object를 String으로 변환시켜준다.
import json
book = {
'id' = 1,
'title' = '파이썬 알고리즘 인터뷰',
'author' = '박상길',
'active' = true,
'date' = '200801'
}
# JSON 인코딩
jsonString = json.dumps(book)
# 문자열 출력
print(jsonString)
Json.dumps()
*주의: json.dump() 와는 다른 메소드. 입력 타입이 파일일 경우 json.dump()를 사용하고, json 객체를 직접 넣을 때는 json.dumps()를 사용한다.
기본 사용법
json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
indent
: json 객체의 타입이 정수나 문자열이면 해당 들여쓰기 수준으로 예쁘게 인쇄된다. 입력값이 0, 음수, 또는 ""라면 줄 넘김, None
이라면 그냥 나열식, 양의 정수
를 입력하면 스페이스 들여쓰기, \t
와 같은 문자열이라면 탭으로 들여쓰기.ensure_ascii
를 flase로 설정하면 한글이 깨지는 것을 방지할 수 있다.sort_keys
값을 True로 지정해 정렬을 사용할 수도 있다.
Reference
- python, (Aug 01, 2020), https://docs.python.org/ko/3/library/json.html
- w3, (Aug 01, 2020), https://www.w3schools.com/js/js_json_datatypes.asp
'📒 Tech Note > 웹 프로그래밍' 카테고리의 다른 글
[JS] 정규식 패턴 [xyz]과 정규식 메소드 match (0) | 2020.08.12 |
---|---|
OAuth 2.0 이해하기 (0) | 2020.08.03 |
[CS] C언어의 기초 (1) (0) | 2020.08.01 |
PyPI 패키지 업로드 해보기 (0) | 2020.07.28 |
Swagger로 Express 시작하기 (1) | 2020.07.14 |