개발부터 자유까지
[Python] json.dumps vs json.dump 본문
json(javascript objection notation) 은 데이터를 저장하는 독립적인 언어 양식입니다.
파이썬에서 json 내장 모듈에 있는 dumps, dump 함수를 사용하는데 json 형식의 데이터로 만들 때,
문자열로 만들지 파일로 만들지 구분하기 위해 사용합니다.
자주 사용하는데 헷갈리는 이유로 차이점을 기록해둡니다.
json.dumps(dict, indent)
json.dumps() 메소드는 python 객체를 json 문자열로 변환할 수 있습니다.
# Convert Python dic object to JSON string object
import json
# Data to be written
dictionary ={
"id": "04",
"name": "sunil",
"department": "HR"
}
# Serializing json
json_str_object = json.dumps(dictionary, indent = 4)
print(json_str_object)
print(type(json_str_object))
================================output================================
{
"id": "04",
"name": "sunil",
"department": "HR"
}
<class 'str'>
json.dump(dict, indent)
json.dump() 메소드는 json 파일에 파이썬 객체를 쓸 수 있습니다.
# Write python object to json file
import json
# Data to be written
dictionary ={
"name" : "sathiyajith",
"rollno" : 56,
"cgpa" : 8.6,
"phonenumber" : "9976770500"
}
with open("sample.json", "w") as outfile:
json.dump(dictionary, outfile)
둘의 차이점
json.dump() | json.dumps() | |
1. | json.dump() Python 직렬화된 객체를 JSON 형식의 데이터로 파일에 작성하는 데 사용되는 메서드입니다. | json.dumps() 메소드는 Python 객체를 JSON 형식의 문자열로 인코딩하는 데 사용됩니다. |
2. | 구문은 -: json.dump(obj, fp, *, Skipkeys=False, verify_ascii=True, check_circular=True,allow_nan=True, cls=None, indent=None, 구분 기호=None, 기본값=None, sort_keys=False, **kw) |
구문은 -: json.dumps(obj, *, Skipkeys=False, verify_ascii=True, check_circular=True,allow_nan=True, cls=None, indent=None, 구분 기호=None, 기본값=None, sort_keys=False, **kw) |
3. | 파일 공간을 절약하기 위해 압축 인코딩을 수행하는 데 사용됩니다. | 7개의 매개변수가 필요합니다. |
4. | JSON 인코딩 중에 기본이 아닌 유형을 건너뛰는 데 사용됩니다. | 목록과 함께 사용할 수 있습니다. |
▶ 참고로 JSON의 키/값 쌍에 있는 키는 항상 str 형입니다. 딕셔너리를 JSON으로 변환하면, 딕셔너리의 모든 키가 문자열로 강제 변환됩니다. 이것의 결과로, 딕셔너리를 JSON으로 변환한 다음 다시 딕셔너리로 변환하면, 딕셔너리가 원래의 것과 같지 않을 수 있습니다. 즉, x에 비 문자열 키가 있으면 loads(dumps(x)) != x입니다.
▶ 출처
https://www.geeksforgeeks.org/python-difference-between-json-dump-and-json-dumps/
'Python' 카테고리의 다른 글
[Python] 유니코드, 내장함수 ord, chr (0) | 2025.04.10 |
---|---|
[Python] input vs sys.stdin.readline (0) | 2024.08.25 |
[Python] os.walk VS os.listdir 차이점 알아보기 (0) | 2024.01.24 |
[Python] websockets 웹소켓 모듈 (0) | 2024.01.18 |
[Python] 문자열 포맷팅 3가지 방식 (0) | 2024.01.16 |