python은 json 데이터를 처리하기 위해 내장 모듈인 json을 사용할 수 있습니다.
일단 json을 사용하기 위해 import json
을 선언 해준다.
loads()
JSON 문자열을 python 객체로 변환할 수 있게 해준다.
import json
json_data = '''{
"id": 1,
"fullname": "Dana",
"email": "dana222@test.com",
"admin": False
}'''
json_data = json.loads(json_data)
print(json_data)
파일에 저장되어있는 JSON문자열을 읽거나, HTTP 요청의 body를 읽을때 자주 사용함
dumps()
python 객체를 json문자열로 변환할 수 있게 해준다.
import json
json_data = {
"id": 1,
"fullname": "Dana",
"email": "dana222@test.com",
"admin": False
}
json_dumps = json.dumps(json_data, indent=2)
print(json_data)
.dumps() 할때 약간의 팁이 있다면 json문자열은 한줄로 나타내어지기 때문에 {"id":1, "fullname": "Dana" ...}
사용자 입장에서 가독성이 떨어지는건 당연할 수 있다. 이럴때 dumps()에 indent라는 파라미터에 숫자를 표기하게 되면 그 숫자만큼 들여쓰기가 되어 json문자열로 변환이 된다.
load()
json 파일에 저장된 데이터를 읽어서 python 객체로 불러오고 싶은 경우에는 loads()
대신 load()
를 사용하면 된다.
json_data = {
"id": 1,
"fullname": "Dana",
"email": "dana222@test.com",
"admin": False
}
import json
with open('data.json') as f:
json_object = json.load(f)
dump()
python 객체를 json 문자로 변환한 결과 파일에 바로 쓰고 싶은 경우엔 dumps()
말고 dump()
를 사용하면 된다.
import json
json_data = {
"id": 1,
"fullname": "Dana",
"email": "dana222@test.com",
"admin": False
}
with open('data.json', 'w') as f:
json_string = json.dump(json_object, f, indent=2)
// data.json으로 저장된 파일
json_data = {
"id": 1,
"fullname": "Dana",
"email": "dana222@test.com",
"admin": False
}
일반적으로 json 포멧의 HTTP 요청에서 body를 쓸대도 해당 방식으로 사용한다.
잘알고 있으면 괜찮지만 loads(), load() / dumps(), dump() 을 사용함에 있어서 헷갈리지 말자.
'python' 카테고리의 다른 글
python iterable과 iterator에 대해 (0) | 2021.07.06 |
---|---|
python 내장함수 sort(), sorted() (0) | 2021.06.26 |
python @decorator에 대해서 (0) | 2021.06.20 |
python 추상 클래스(abstract class) (0) | 2021.06.08 |
python 객체지향 프로그래밍 SOLID 설계원칙 (0) | 2020.10.26 |