Python Language
데이터 직렬화
수색…
통사론
- 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 , list 및 dict 입니다. 자세한 내용은 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