json
json은 프로그램 데이터 유형의 직렬화 및 역직렬화를 수행하는 모듈 중 하나입니다. 다른 플랫폼과 다른 프로그램에서 데이터를 교환하는 데 사용할 수 있거나 프로그램이 데이터를 임시로 저장하는 방법으로 사용할 수 있습니다. json의 사용법을 살펴보겠습니다.
1 #json_序列化.py 2 import json 3 dic={ 4 "id":"123456", 5 "name":"Jack", 6 "country":"China" 7 } 8 date=json.dumps(dic) 9 with open("demo.txt","w") as f:10 f.write(date)11 12 #json_反序列化.py13 import json14 with open("demo.txt","r") as f:15 dic1=json.loads(f.read())16 print(dic1["name"])
두 파일의 내용은 위에 표시되어 있습니다. 첫 번째 파일은 (dump() 메서드를 사용하여) 사전을 문자열로 직렬화한 다음 작성하는 것입니다. 파일(demo.txt)로 변환합니다. 두 번째 파일은 데모.txt의 내용을 읽은 다음, load() 메서드를 사용하여 이를 실행 가능한 사전 객체로 역직렬화하고 사전의 "이름" 내용을 인쇄하는 것입니다.
실제로 json에는 dump() 및 load() 두 가지 메서드 외에도 dump() 및 load()라는 두 가지 더 간단한 메서드가 있습니다. 사용법은 다음과 같습니다.
1 #json_序列化2.py 2 import json 3 dic={ 4 "id":"123456", 5 "name":"Jack", 6 "country":"China" 7 } 8 with open("demo.txt","w") as f: 9 date=json.dump(dic,f)10 11 12 13 #json_反序列化2.py14 import json15 with open("demo.txt","r") as f:16 dic1=json.load(f)17 print(dic1["name"])
비교를 보면 dump() 및 load()가 dump(), load() 및 파일 읽기 및 쓰기 작업을 캡슐화한다는 것을 알 수 있습니다.
pickle
pickle에도 위의 4가지 json 메서드가 있고 사용법도 완전히 동일하므로 여기서는 설명하지 않겠습니다. 그러나 피클은 더 강력합니다. json은 목록, 사전 등과 같은 상대적으로 간단한 일부 데이터 개체만 직렬화할 수 있습니다. Pickle은 함수 및 클래스와 같은 복잡한 객체를 직렬화할 수도 있습니다.
다음은 피클이 함수를 직렬화하고 역직렬화하는 방법을 보여줍니다.
1 #pickle_序列化.py 2 import pickle 3 #定义函数hello 4 def hello(name): 5 print("hello",name) 6 #定义列表,把hello也存进去 7 dic1={ 8 "name":"Mark", 9 "func":hello10 }11 with open("demo.txt","wb") as f:12 pickle.dump(dic1,f)13 14 #pickle_反序列化.py15 import pickle16 #######################17 def hello(name):18 print("hello",name)19 #######################20 with open("demo.txt","rb")as f:21 dic2=pickle.load(f)22 dic2["func"]("Jack")
두 파일의 내용도 위에 나와있습니다. 다음 사항에 주의하세요.
1. 함수, 클래스 등의 직렬화 및 역직렬화 시 파일을 열 때 "wb" 및 "rb"에 주의해야 합니다. ”
2. 역직렬화된 함수를 새 파일에서 실행하려면 이전에 정의한 함수의 소스 코드를 새 파일에 복사해야 합니다(pickle_deserialization.py의 두 문자에 유의하세요). # 행), 그렇지 않으면 실행되지 않습니다. # 행에 내용이 없으면 프로그램은 오류를 보고합니다: AttributeError: Can't get attribute 'hello' on
3. 함수 이름이 직렬화 중에 사용된 함수 이름과 일치하는지 확인하기만 하면 됩니다. 함수 변경 후 함수를 호출하면 변경된 함수에 따라 실행됩니다(물론 이 변경이 필요해야 합니다)
위 내용은 json 및 pickle 사용법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!