Python 데이터 지속성-JSON 모듈

JSON은 JavaScript Object Notation. 경량 데이터 교환 형식입니다. 여러 프로그래밍 언어에서 지원하는 언어 독립적이며 교차 플랫폼 텍스트 형식입니다. 이 형식은 웹 서버와 클라이언트 간의 데이터 교환에 사용됩니다.

JSON 형식은 pickle과 유사합니다. 그러나 피클 직렬화는 Python에 따라 다르지만 JSON 형식은 여러 언어로 구현되어 범용 표준이되었습니다. Python의 표준 라이브러리에있는 json 모듈의 기능 및 인터페이스는 pickle 및 marshal 모듈과 유사합니다.

pickle 모듈과 마찬가지로 json 모듈은 dumps()loads() Python 객체를 JSON 인코딩 문자열로 직렬화하는 함수 dump()load() 함수는 직렬화 된 Python 객체를 파일에 쓰고 읽습니다.

  • dumps() −이 함수는 객체를 JSON 형식으로 변환합니다.

  • loads() −이 함수는 JSON 문자열을 다시 Python 객체로 변환합니다.

다음 예제는 이러한 기능의 기본 사용법을 보여줍니다-

import json
   data=['Rakesh',{'marks':(50,60,70)}]
   s=json.dumps(data)
json.loads(s)

dumps () 함수는 선택적 sort_keys 인수를 사용할 수 있습니다. 기본적으로 False입니다. True로 설정하면 사전 키가 JSON 문자열에서 정렬 된 순서로 나타납니다.

dumps () 함수에는 숫자를 값으로 사용하는 indent라는 또 다른 선택적 매개 변수가 있습니다. 인쇄 출력과 유사하게 json 문자열의 형식화 된 표현의 각 세그먼트의 길이를 결정합니다.

json 모듈에는 위의 기능에 해당하는 객체 지향 API도 있습니다. 모듈에는 JSONEncoder 및 JSONDecoder의 두 가지 클래스가 정의되어 있습니다.

JSONEncoder 클래스

이 클래스의 객체는 Python 데이터 구조용 인코더입니다. 각 Python 데이터 유형은 다음 표와 같이 해당 JSON 유형으로 변환됩니다.

파이썬 JSON
딕트 목적
목록, 튜플 정렬
Str
int, float, int- 및 float 파생 열거 형 번호
진실 진실
그릇된 그릇된
없음 없는

JSONEncoder 클래스는 JSONEncoder () 생성자에 의해 인스턴스화됩니다. 인코더 클래스에 다음과 같은 중요한 방법이 정의되어 있습니다.

Sr. 아니. 방법 및 설명
1

encode()

Python 객체를 JSON 형식으로 직렬화합니다.

2

iterencode()

개체를 인코딩하고 개체에있는 각 항목의 인코딩 된 형식을 생성하는 반복기를 반환합니다.

indent

인코딩 된 문자열의 들여 쓰기 수준을 결정합니다.

4

sort_keys

키가 정렬 된 순서로 표시되도록하려면 true 또는 false입니다.

5

Check_circular

True이면 컨테이너 유형 객체에서 순환 참조를 확인합니다.

다음 예제는 Python 목록 객체를 인코딩합니다.

e=json.JSONEncoder()
e.encode(data)

JSONDecoder 클래스

이 클래스의 객체는 파이썬 데이터 구조로 다시 json 문자열로 디코딩하는 데 도움이됩니다. 이 클래스의 주요 메서드는 decode ()입니다. 다음 예제 코드는 이전 단계에서 인코딩 된 문자열에서 Python 목록 객체를 검색합니다.

d=json.JSONDecoder()
d.decode(s)

json 모듈은 load()dump() 객체와 같은 파일에 JSON 데이터를 쓰는 함수 – 디스크 파일 또는 바이트 스트림 일 수 있으며 데이터를 다시 읽을 수 있습니다.

덤프()

이 함수는 JSON 형식의 Python 개체 데이터를 파일에 씁니다. 파일은 'w'모드로 열어야합니다.

import json
data=['Rakesh', {'marks': (50, 60, 70)}]
   fp=open('json.txt','w')
   json.dump(data,fp)
   fp.close()

이 코드는 현재 디렉토리에 'json.txt'를 생성합니다. 다음과 같이 내용을 보여줍니다-

["Rakesh", {"marks": [50, 60, 70]}]

하중()

이 함수는 파일에서 JSON 데이터를로드하고 여기에서 Python 객체를 반환합니다. 파일은 읽기 권한으로 열어야합니다 ( 'r'모드가 있어야 함).

Example

fp=open('json.txt','r')
   ret=json.load(fp)
   print (ret)
   fp.close()

Output

['Rakesh', {'marks': [50, 60, 70]}]

그만큼 json.tool 모듈에는 또한 파일의 데이터를 검증하고 꽤 형식화 된 방식으로 JSON 객체를 인쇄하는 명령 줄 인터페이스가 있습니다.

C:\python37>python -m json.tool json.txt
[
   "Rakesh",   
   {
      "marks": [
         50,
         60,
         70
      ]
   }
]