Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발부터 자유까지

[Python] json.dumps vs json.dump 본문

Python

[Python] json.dumps vs json.dump

건물주개발자 2024. 6. 11. 14:14

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/

https://docs.python.org/ko/3/library/json.html#json.dump