Python에서 사전과 JSON 간의 상호 변환 방법은 무엇입니까?
매우 일반적으로 사용되는 데이터 구조로 사전은 Python에서 널리 사용됩니다. 경량 데이터 교환 형식인 JSON(JavaScript Object Notation)은 네트워크 데이터 전송 및 저장에도 널리 사용됩니다. Python에서는 사전과 JSON 간의 변환이 일반적인 작업입니다. 이 기사에서는 일반적으로 사용되는 몇 가지 방법을 소개하고 해당 코드 예제를 첨부합니다.
방법 1: json 모듈의 dump() 함수와 load() 함수를 사용하세요
json 모듈은 JSON 데이터를 처리하기 위한 Python 표준 라이브러리의 모듈입니다. 그 중 dump() 함수는 Python 객체를 JSON 문자열로 변환하는 데 사용되고, load() 함수는 JSON 문자열을 Python 객체로 변환하는 데 사용됩니다.
다음은 사전을 JSON 문자열로 변환하고 JSON 문자열을 다시 사전으로 변환하는 예입니다.
import json # 将字典转换为JSON字符串 my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'} json_str = json.dumps(my_dict) print(json_str) # 输出:{"name": "Tom", "age": 20, "gender": "male"} # 将JSON字符串转换为字典 new_dict = json.loads(json_str) print(new_dict) # 输出:{'name': 'Tom', 'age': 20, 'gender': 'male'}
방법 2: json 모듈의 dump() 함수와 load() 함수를 사용합니다.
dump() 함수와 load() 함수 위에, json 모듈은 Python 객체를 파일에 직접 쓰거나 파일에서 JSON 데이터를 읽는 데 사용되는 dump() 함수와 load() 함수도 제공합니다.
다음은 JSON 파일에 사전을 작성하고 JSON 파일에서 사전을 읽는 예입니다.
import json # 将字典写入JSON文件 my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'} with open('data.json', 'w') as f: json.dump(my_dict, f) # 从JSON文件中读取字典 with open('data.json', 'r') as f: new_dict = json.load(f) print(new_dict) # 输出:{'name': 'Tom', 'age': 20, 'gender': 'male'}
방법 3: json 모듈에서 json.JSONEncoder 및 json.JSONDecoder 클래스의 하위 클래스를 사용합니다
추가로 함수 메서드 외에도 json.JSONEncoder 및 json.JSONDecoder 클래스의 하위 클래스를 사용자 정의하여 사전과 JSON 간의 변환을 구현할 수도 있습니다. 이 두 클래스를 상속하고 관련 메서드를 재정의함으로써 사전 변환 동작을 사용자 정의할 수 있습니다.
다음은 JSONEncoder 및 JSONDecoder 클래스의 하위 클래스를 사용자 정의하여 사전과 JSON을 변환하는 예입니다.
import json class MyEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, dict): return json.JSONEncoder.default(self, obj) return obj.__dict__ class MyDecoder(json.JSONDecoder): def __init__(self): json.JSONDecoder.__init__(self, object_hook=self.dict_to_object) def dict_to_object(self, d): if '__class__' in d: class_name = d.pop('__class__') module_name = d.pop('__module__') module = __import__(module_name) class_ = getattr(module, class_name) args = dict((key, value) for key, value in d.items()) instance = class_(**args) else: instance = d return instance # 将字典转换为JSON字符串 my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'} json_str = json.dumps(my_dict, cls=MyEncoder) print(json_str) # 输出:{"name": "Tom", "age": 20, "gender": "male"} # 将JSON字符串转换为字典 new_dict = json.loads(json_str, cls=MyDecoder) print(new_dict) # 输出:{'name': 'Tom', 'age': 20, 'gender': 'male'}
위는 Python 사전과 JSON을 변환하는 데 일반적으로 사용되는 몇 가지 방법입니다. 실제 필요에 따라 사전과 JSON 간의 데이터 변환을 쉽게 처리할 수 있는 적절한 방법을 선택하십시오.
위 내용은 Python에서 사전과 JSON을 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!