json.dumps와 json.load의 차이점은 무엇입니까? [닫은]


143

차이점은 무엇이며 json.dumps그리고 json.load?

내 이해에서 하나는 JSON을 사전에로드하고 다른 하나는 객체에로드합니다.

답변:


190

dumps 객체를 가져 와서 문자열을 생성합니다.

>>> a = {'foo': 3}
>>> json.dumps(a)
'{"foo": 3}'

load 파일과 같은 객체를 가져 와서 해당 객체에서 데이터를 읽고 해당 문자열을 사용하여 객체를 만듭니다.

with open('file.json') as fh:
    a = json.load(fh)

참고 dumpload변환 파일 및 객체 반면, 사이 dumpsloads사이의 변환 문자열 및 객체. s-less 함수는 s함수 주위의 래퍼로 생각할 수 있습니다 .

def dump(obj, fh):
    fh.write(dumps(obj))

def load(fh):
    return loads(fh.read())

이것은 내 이해에 매우 도움이됩니다. 여전히 파이썬에서 모든 것이 객체라고 생각하면서 약간 혼란 스럽습니다. 문자열 자체가 객체가 아닐까요? 그러면 어떻게 둘 사이를 변환 할 수 있습니까? 바보 같은 질문에 대해 죄송합니다.
보웬 리우

object""이외의 다른 유형의 의미로 사용 하고 str있습니다. 같은 문자열 '"foo"'파이썬 str 객체로 디코딩됩니다 'foo'. 같은 문자열 "[1,2,3]"파이썬 목록에 디코딩 [1,2,3]
chepner을

dumps()dump()loads()load()
-JSON

74

json loads-> json 객체를 나타내는 문자열에서 객체를 반환합니다.

json dumps->는 객체에서 json 객체를 나타내는 문자열을 반환합니다.

로드 및 덤프-> 문자열 대신 파일에서 읽기 / 쓰기


10
> json dumps->는 dict에서 json 객체를 나타내는 문자열을 반환합니다. 가까이 있지만 json.dumps ()에 전달할 수있는 것은 아닙니다. 목록, 문자열 또는 부울을 전달할 수 있습니다.
Ross
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.