JSON JavaScript Object Notation의 약어입니다. 이름에도 불구하고 JSON은 시스템 간에 데이터를 전송하고 경우에 따라 데이터를 저장하는 데 가장 일반적으로 사용되는 언어 독립적 형식입니다. Python 및 기타 여러 프로그래밍 언어로 작성된 프로그램은 JSON 형식의 데이터를 수집하고 메모리의 데이터를 JSON 형식으로 직렬화할 수 있습니다. 파이썬 json이라는 내장 패키지를 통해 JSON을 지원합니다. 이 기능을 사용하려면 데이터를 직렬화하거나 역직렬화하려는 Python 스크립트 또는 모듈로 json 패키지를 가져옵니다. JSON은 큰따옴표로 묶이고 콜론으로 구분된 쉼표로 구분된 키 값 쌍을 활용합니다. JSON 파일의 본문은 중괄호 { } 또는 대괄호 [](일부 로케일에서는 대괄호라고도 함)로 구분할 수 있습니다. JSON 형식은 Python의 사전과 유사한 것으로 보이지만 JSON 형식의 세부 사항에는 상당한 차이가 있으므로 두 형식을 모두 사용할 때는 주의해야 합니다.
메모: 자세한 내용은 읽기를 참조하세요. Python을 사용하여 JSON 작성 및 구문 분석
JSON.dumps()
json.dumps() 함수는 Python 객체의 하위 집합을 json 문자열로 변환합니다. 모든 객체가 변환 가능한 것은 아니며 JSON으로 직렬화하기 전에 노출하려는 데이터 사전을 생성해야 할 수도 있습니다.
통사론:
json.dumps(obj, *, Skipkeys=False, verify_ascii=True, check_circular=True,allow_nan=True, cls=None, indent=None, 구분 기호=None, 기본값=None, sort_keys=False, **kw)
매개변수:
객체: obj를 JSON 형식 스트림으로 직렬화
건너뛰기 키: Skipkeys가 True(기본값: False)이면 TypeError를 발생시키는 대신 기본 유형(str, int, float, bool, None)이 아닌 dict 키를 건너뜁니다.
verify_ascii: verify_ascii가 True(기본값)이면 출력에서는 들어오는 모든 비ASCII 문자가 이스케이프되도록 보장됩니다. verify_ascii가 False인 경우 이러한 문자는 있는 그대로 출력됩니다.
check_circular: check_circular가 False(기본값: True)이면 컨테이너 유형에 대한 순환 참조 확인을 건너뛰고 순환 참조로 인해 OverflowError(또는 그보다 더 심각한 오류)가 발생합니다.
허용_인: Allow_nan이 False(기본값: True)인 경우 JSON 사양을 엄격하게 준수하여 범위를 벗어난 부동 소수점 값(nan, inf, -inf)을 직렬화하는 것은 ValueError가 됩니다. allow_nan이 True이면 해당 JavaScript 항목(NaN, Infinity, -Infinity)이 사용됩니다.
톱니 모양: 들여쓰기가 음수가 아닌 정수 또는 문자열인 경우 JSON 배열 요소와 객체 멤버는 해당 들여쓰기 수준으로 예쁘게 인쇄됩니다. 들여쓰기 수준이 0, 음수이거나 줄 바꿈만 삽입됩니다. 없음(기본값)은 가장 간결한 표현을 선택합니다. 양의 정수 들여쓰기를 사용하면 수준당 많은 공백을 들여씁니다. indent가 문자열(예: )인 경우 해당 문자열은 각 수준을 들여쓰는 데 사용됩니다.
구분 기호: 지정된 경우 구분 기호는 (item_separator, key_separator) 튜플이어야 합니다. 들여쓰기가 None이면 기본값은 (', ', ': ')이고, 그렇지 않으면 (', ', ': ')입니다. 가장 간결한 JSON 표현을 얻으려면 공백을 제거하기 위해 (', ', ':')를 지정해야 합니다.
기본: 지정된 경우 기본값은 직렬화할 수 없는 객체에 대해 호출되는 함수여야 합니다. 객체의 JSON 인코딩 가능 버전을 반환하거나 TypeError를 발생시켜야 합니다. 지정하지 않으면 TypeError가 발생합니다.
sort_keys: sort_keys가 True(기본값: False)이면 사전의 출력이 키를 기준으로 정렬됩니다.
예시 #1: Python 사전을 json.dumps() 함수에 전달하면 문자열이 반환됩니다.
파이썬3
import> json> # Creating a dictionary> Dictionary> => {> 1> :> 'Welcome'> ,> 2> :> 'to'> ,> > 3> :> 'Geeks'> ,> 4> :> 'for'> ,> > 5> :> 'Geeks'> }> > # Converts input dictionary into> # string and stores it in json_string> json_string> => json.dumps(Dictionary)> print> (> 'Equivalent json string of input dictionary:'> ,> > json_string)> print> (> ' '> )> # Checking type of object> # returned by json.dumps> print> (> type> (json_string))> |
>
>
안드로이드에서 유튜브 광고 차단하기
산출
사전의 동등한 json 문자열: {1: Welcome, 2: to, 3: Geeks, 4: for, 5: Geeks}
예시 #2: 건너뛰기 키를 True(기본값: False)로 설정하면 기본 유형이 아닌 키를 자동으로 건너뜁니다.
파이썬3
import> json> Dictionary> => {(> 1> ,> 2> ,> 3> ):> 'Welcome'> ,> 2> :> 'to'> ,> > 3> :> 'Geeks'> ,> 4> :> 'for'> ,> > 5> :> 'Geeks'> }> # Our dictionary contains tuple> # as key, so it is automatically> # skipped If we have not set> # skipkeys = True then the code> # throws the error> json_string> => json.dumps(Dictionary,> > skipkeys> => True> )> print> (> 'Equivalent json string of dictionary:'> ,> > json_string)> |
>
자바의 버블 정렬
>
산출
사전의 동등한 json 문자열: {2: to, 3: Geeks, 4: for, 5: Geeks}
예시 #3:
파이썬3
import> json> # We are adding nan values> # (out of range float values)> # in dictionary> Dictionary> => {(> 1> ,> 2> ,> 3> ):> 'Welcome'> ,> 2> :> 'to'> ,> > 3> :> 'Geeks'> ,> 4> :> 'for'> ,> > 5> :> 'Geeks'> ,> 6> :> float> (> 'nan'> )}> # If we hadn't set allow_nan to> # true we would have got> # ValueError: Out of range float> # values are not JSON compliant> json_string> => json.dumps(Dictionary,> > skipkeys> => True> ,> > allow_nan> => True> )> print> (> 'Equivalent json string of dictionary:'> ,> > json_string)> |
>
>
출력 :
사전의 동등한 json 문자열: {2: to, 3: Geeks, 4: for, 5: Geeks, 6: NaN}
예시 #4:
파이썬3
데이터베이스에 연결 자바
네트워크 유형
import> json> Dictionary> => {(> 1> ,> 2> ,> 3> ):> 'Welcome'> ,> 2> :> 'to'> ,> > 3> :> 'Geeks'> ,> 4> :> 'for'> ,> > 5> :> 'Geeks'> ,> 6> :> float> (> 'nan'> )}> # Indentation can be used> # for pretty-printing> json_string> => json.dumps(Dictionary,> > skipkeys> => True> ,> > allow_nan> => True> ,> > indent> => 6> )> print> (> 'Equivalent json string of dictionary:'> ,> > json_string)> |
>
>
산출:
Equivalent json string of dictionary: { '2': 'to', '3': 'Geeks', '4': 'for', '5': 'Geeks', '6': NaN }>
예시 #5:
파이썬3
import> json> Dictionary> => {(> 1> ,> 2> ,> 3> ):> 'Welcome'> ,> 2> :> 'to'> ,> > 3> :> 'Geeks'> ,> 4> :> 'for'> ,> > 5> :> 'Geeks'> ,> 6> :> float> (> 'nan'> )}> # If specified, separators should be> # an (item_separator, key_separator)tuple> # Items are separated by '.' and key,> # values are separated by '='> json_string> => json.dumps(Dictionary,> > skipkeys> => True> ,> > allow_nan> => True> ,> > indent> => 6> ,> > separators> => (> '. '> ,> ' = '> ))> print> (> 'Equivalent json string of dictionary:'> ,> > json_string)> |
>
>
산출:
Equivalent json string of dictionary: { '2' = 'to'. '3' = 'Geeks'. '4' = 'for'. '5' = 'Geeks'. '6' = NaN }>
예시 #6:
파이썬3
클라우드 컴퓨팅 애플리케이션
import> json> Dictionary> => {> 'c'> :> 'Welcome'> ,> 'b'> :> 'to'> ,> > 'a'> :> 'Geeks'> }> json_string> => json.dumps(Dictionary,> > indent> => 6> ,> > separators> => (> '. '> ,> ' = '> ),> > sort_keys> => True> )> print> (> 'Equivalent json string of dictionary:'> ,> > json_string)> |
>
>
산출:
Equivalent json string of dictionary: { 'a' = 'Geeks'. 'b' = 'to'. 'c' = 'Welcome' }>