>백엔드 개발 >파이썬 튜토리얼 >Python에서 사전과 JSON을 변환하는 방법은 무엇입니까?

Python에서 사전과 JSON을 변환하는 방법은 무엇입니까?

WBOY
WBOY원래의
2023-10-18 10:30:111742검색

Python에서 사전과 JSON을 변환하는 방법은 무엇입니까?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.