Python pickle 모듈 상용 방법 코드 실례

2981 단어 Pythonpickle모듈
서열화에 사용되는 두 모듈
  • json: 문자열과 Python 데이터 형식 간의 변환에 사용됩니다
  • pickle:python 특유의 형식과python의 데이터 형식 간에 변환하는 데 사용됩니다
  • json은 네 가지 기능을 제공한다:dumps,dump,loads,load
  • 픽셀은 네 가지 기능을 제공한다:dumps,dump,loads,load
  • pickle은 어떤 종류의 데이터를 저장할 수 있습니까?
  • 모든python이 지원하는 원본 유형: 볼 값, 정수, 부동 소수점, 복수, 문자열, 바이트, None..
  • 모든 원생 유형으로 구성된 목록, 원조, 사전과 집합..
  • 함수, 클래스, 클래스의 실례
  • pickle 모듈에서 자주 사용하는 방법은 다음과 같습니다.
    1. pickle.dump(obj, file, protocol=None,)
    필수 매개 변수obj는 봉인할 대상을 나타냅니다.
    필수 매개 변수 file은obj가 쓸 파일 대상을 표시하고, file은 2진 쓰기 모드로 열어야 합니다. 즉, "wb"
    선택 가능한 매개 변수 프로토콜은pickler가 사용하는 프로토콜을 알려줍니다. 지원하는 프로토콜은 0, 1, 2, 3입니다. 기본 프로토콜은Python 3에 추가된 프로토콜 3입니다.   
  • Protocol version 0 is the original “human-readable” protocol and is backwards compatible with earlier versions of Python.
  • Protocol version 1 is an old binary format which is also compatible with earlier versions of Python.
  • Protocol version 2 was introduced in Python 2.3. It provides much more efficient pickling of new-style classes. Refer to PEP 307 for information about improvements brought by protocol 2.
  • Protocol version 3 was added in Python 3.0. It has explicit support for bytes objects and cannot be unpickled by Python 2.x. This is the default protocol, and the recommended protocol when compatibility with other Python 3 versions is required.
  • Protocol version 4 was added in Python 3.4. It adds support for very large objects, pickling more kinds of objects, and some data format optimizations. Refer to PEP 3154 for information about improvements brought by protocol 4.
  • 2. pickle.load(file,*,fix_imports=True, encoding="ASCII", errors="strict")
    필수 매개 변수 파일은 반드시 2진 읽기 가능 모드로 열어야 합니다. 즉, "rb"이고, 다른 것은 모두 선택할 수 있는 매개 변수입니다.
    3. pickle.dumps(obj): 바이트 대상 형식으로 봉인된 대상을 되돌려줍니다. 파일에 쓸 필요가 없습니다.
    4. pickle.loads(bytes_object): 바이트 객체에서 패키지된 객체를 읽고 반환합니다.
    pickle 모듈에 세 가지 이상이 발생할 수 있습니다.
    1. PickleError: 봉인 및 뜯을 때 발생하는 이상 클래스, Exception에서 상속
    2. PicklingError: 패키지할 수 없는 객체가 있을 때 발생하는 예외입니다. PickleError로부터 상속됩니다.
    3. UnPicklingError: 객체를 개봉하는 동안 발생한 예외로 PickleError로부터 상속됩니다.
    적용:
    
    # dumps 
    import pickle
    data = ['aa', 'bb', 'cc']
    # dumps  python 
    p_str = pickle.dumps(data)
    print(p_str)      7 b'\x80\x03]q\x00(X\x02\x00\x00\x00aaq\x01X\x02\x00\x00\x00bbq\x02X\x02\x00\x00\x00ccq\x03e.
    
    # loads 
    # loads  pickle python 
    mes = pickle.loads(p_str)
    print(mes)
    ['aa', 'bb', 'cc']
    
    # dump 
    # dump  python , 
    with open('D:/tmp.pk', 'w') as f:
      pickle.dump(data, f)
    
    # load 
    # load  , python 
    with open('D:/tmp.pk', 'r') as f:
      data = pickle.load(f)
    이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

    좋은 웹페이지 즐겨찾기