수색…


통사론

  • unpickled_string = pickle.loads (문자열)
  • unpickled_string = pickle.load (file_object)
  • pickle_string = pickle.dumps ([( '', 'cmplx'), {( 'object',) :}}, pickle.HIGHEST_PROTOCOL)
  • pickle.dump (( '', 'cmplx'), {( 'object',) :}}, file_object, pickle.HIGHEST_PROTOCOL)
  • unjsoned_string = json.loads (string)
  • unjsoned_string = json.load (file_object)
  • jsoned_string = json.dumps (( 'a', 'b', 'c', [1, 2, 3]))
  • json.dump (( 'a', 'b', 'c', [1, 2, 3]), file_object)

매개 변수

매개 변수 세부
protocol pickle 또는 cPickle 사용하여 객체가 직렬화 / 비 직렬화되는 메소드입니다. 가장 최근의 방법을 의미하는 pickle.HIGHEST_PROTOCOL 여기에서 사용하고 싶을 것입니다.

비고

JSON을 사용하는 이유는 무엇입니까?

  • 언어 간 지원
  • 사람이 읽을 수있는
  • pickle과는 달리 임의의 코드를 실행할 위험이 없습니다.

JSON을 사용하지 않는 이유는 무엇입니까?

  • 파이썬 데이터 형식을 지원하지 않습니다.
  • 사전의 키는 문자열 데이터 유형이 아니어야합니다.

왜 피클?

  • Pythonic (튜플, 함수, 클래스)을 직렬화하는 훌륭한 방법
  • 사전의 키는 모든 데이터 유형이 될 수 있습니다.

피클 왜 안되니?

  • 언어 간 지원이 누락되었습니다.
  • 임의의 데이터로드시 안전하지 않습니다.

JSON을 사용한 직렬화

JSON 은 데이터를 직렬화하기 위해 널리 사용되는 교차 언어입니다.

지원되는 데이터 유형은 int , float , boolean , string , listdict 입니다. 자세한 내용은 JSON Wiki 를 참조하십시오.

다음은 JSON기본 사용법을 보여주는 예제입니다.

import json

families = (['John'], ['Mark', 'David', {'name': 'Avraham'}])

# Dumping it into string
json_families = json.dumps(families)
# [["John"], ["Mark", "David", {"name": "Avraham"}]]

# Dumping it to file
with open('families.json', 'w') as json_file:
    json.dump(families, json_file)

# Loading it from string
json_families = json.loads(json_families)

# Loading it from file
with open('families.json', 'r') as json_file:
    json_families = json.load(json_file)

JSON에 대한 자세한 내용은 JSON-Module 을 참조하십시오.

피클을 사용한 직렬화

다음은 pickle기본 사용법을 보여주는 예입니다.

# Importing pickle
try:
    import cPickle as pickle  # Python 2
except ImportError:
    import pickle  # Python 3

# Creating Pythonic object:
class Family(object):
    def __init__(self, names):
        self.sons = names

    def __str__(self):
        return ' '.join(self.sons)

my_family = Family(['John', 'David'])

# Dumping to string
pickle_data = pickle.dumps(my_family, pickle.HIGHEST_PROTOCOL)

# Dumping to file
with open('family.p', 'w') as pickle_file:
    pickle.dump(families, pickle_file, pickle.HIGHEST_PROTOCOL)

# Loading from string
my_family = pickle.loads(pickle_data)

# Loading from file
with open('family.p', 'r') as pickle_file:
    my_family = pickle.load(pickle_file)

피클에 대한 자세한 내용은 피클 을 참조하십시오.

경고 : pickle의 공식 문서는 보안상의 보장이 없음을 분명히합니다. 원본을 신뢰할 수없는 데이터는로드하지 마십시오.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow