Python은 XML과 JSON 간의 변환을 구현합니다.
Python은 XML과 JSON 간의 변환을 구현합니다.
소개:
일상적인 개발 프로세스에서 우리는 종종 서로 다른 형식 간에 데이터를 변환해야 합니다. XML과 JSON은 일반적인 데이터 교환 형식입니다. Python에서는 다양한 라이브러리를 사용하여 XML과 JSON을 변환할 수 있습니다. 이 문서에서는 코드 예제와 함께 일반적으로 사용되는 몇 가지 방법을 소개합니다.
1. XML을 JSON으로
Python에서는 xml.etree.ElementTree 모듈을 사용하여 XML을 구문 분석하고 생성할 수 있습니다. 대신 json 모듈을 사용하여 JSON을 구문 분석하고 생성하세요. 다음은 XML을 JSON으로 변환하는 예입니다.
import xml.etree.ElementTree as ET import json def xml_to_json(xml_string): root = ET.fromstring(xml_string) return json.dumps({root.tag: xml_to_dict(root)}) def xml_to_dict(element): d = {} if element.attrib: d["@attributes"] = element.attrib if element.text: d[element.tag] = element.text for child in element: child_data = xml_to_dict(child) if child.tag in d: if type(d[child.tag]) is list: d[child.tag].append(child_data) else: d[child.tag] = [d[child.tag], child_data] else: d[child.tag] = child_data return d
코드 설명:
- 먼저
xml.etree.ElementTree
모듈의fromstring
메서드를 사용하여 XML을 변환합니다. 문자 문자열을 요소 개체로 변환합니다.xml.etree.ElementTree
模块的fromstring
方法将XML字符串转换为Element对象。 - 然后,我们定义了一个
xml_to_json
函数,该函数接受一个XML字符串作为参数,并将解析后的结果转换为JSON字符串。 - 在
xml_to_json
函数中,我们首先获取根元素的tag,并将其作为最外层的键。 - 然后,我们调用
xml_to_dict
函数来递归地将每个XML元素转换为字典格式。 - 在
xml_to_dict
函数中,我们首先判断当前元素是否有属性,如果有,则将其转换为字典的@attributes
键。 - 然后,我们判断当前元素是否有文本内容,如果有,则将其转换为字典的键值对。
- 最后,我们迭代当前元素的子元素,并递归调用
xml_to_dict
函数来解析子元素。
二、JSON转XML
与XML转JSON相反,我们可以使用xml.etree.ElementTree模块来生成XML,而使用json模块来解析和生成JSON。下面是一个将JSON转换为XML的示例:
import xml.etree.ElementTree as ET import json def json_to_xml(json_string): data = json.loads(json_string) root = ET.Element(data.keys()[0]) convert_dict_to_xml(data[data.keys()[0]], root) return ET.tostring(root, encoding="utf-8", xml_declaration=True) def convert_dict_to_xml(data, parent): if isinstance(data, dict): for key, value in data.items(): if isinstance(value, dict): element = ET.SubElement(parent, key) convert_dict_to_xml(value, element) elif isinstance(value, list): for item in value: element = ET.SubElement(parent, key) convert_dict_to_xml(item, element) else: ET.SubElement(parent, key).text = str(value) else: parent.text = str(data)
代码说明:
- 首先,我们使用json模块的
loads
方法将JSON字符串解析为Python字典对象。 - 然后,我们创建一个根元素,将其tag设置为字典的键。
- 接下来,我们调用
convert_dict_to_xml
函数来递归地将字典转换为XML格式。 - 在
convert_dict_to_xml
函数中,我们首先判断当前数据是否为字典类型,如果是,则迭代字典的键值对。 - 如果值是字典类型,则创建一个子元素,并递归调用
convert_dict_to_xml
函数。 - 如果值是列表类型,则迭代列表中的每个元素,创建多个相同tag的子元素,并递归调用
convert_dict_to_xml
그런 다음 XML 문자열을 매개변수로 받아들이고 구문 분석된 결과를 JSON 문자열로 변환하는 -
xml_to_json
함수에서는 먼저 루트 요소의 태그를 가져와서 가장 바깥쪽 키로 사용합니다.
xml_to_json
함수를 정의합니다. 그런 다음 xml_to_dict
함수를 호출하여 각 XML 요소를 사전 형식으로 재귀적으로 변환합니다.
xml_to_dict
함수에서는 먼저 현재 요소에 속성이 있는지 확인하고 속성이 있으면 사전의 @attributes
키로 변환합니다. 🎜🎜그런 다음 현재 요소에 텍스트 콘텐츠가 있는지 확인하고, 그렇다면 사전의 키-값 쌍으로 변환합니다. 🎜🎜마지막으로 현재 요소의 하위 요소를 반복하고 xml_to_dict
함수를 재귀적으로 호출하여 하위 요소를 구문 분석합니다. 🎜🎜🎜2.JSON to XML🎜XML to JSON과 달리 xml.etree.ElementTree 모듈을 사용하여 XML을 생성하고 json 모듈을 사용하여 JSON을 구문 분석하고 생성할 수 있습니다. 다음은 JSON을 XML로 변환하는 예입니다. 🎜rrreee🎜코드 설명: 🎜🎜🎜먼저 json 모듈의 loads
메서드를 사용하여 JSON 문자열을 Python 사전 개체로 구문 분석합니다. 🎜🎜그런 다음 루트 요소를 만들고 해당 태그를 사전의 키로 설정합니다. 🎜🎜다음으로 convert_dict_to_xml
함수를 호출하여 사전을 XML 형식으로 재귀적으로 변환합니다. 🎜🎜convert_dict_to_xml
함수에서는 먼저 현재 데이터가 사전 유형인지 확인하고, 그렇다면 사전의 키-값 쌍을 반복합니다. 🎜🎜값이 사전 유형인 경우 하위 요소를 생성하고 convert_dict_to_xml
함수를 재귀적으로 호출하세요. 🎜🎜값이 목록 유형인 경우 목록의 각 요소를 반복하고 동일한 태그로 여러 하위 요소를 만든 다음 convert_dict_to_xml
함수를 재귀적으로 호출합니다. 🎜🎜값이 또 다른 기본 데이터 유형인 경우 현재 요소에 텍스트 콘텐츠로 추가하세요. 🎜🎜🎜요약: 🎜위의 코드 예제를 통해 Python에서 XML과 JSON 간의 상호 변환을 달성할 수 있습니다. XML에서 JSON으로 변환하든, JSON에서 XML로 변환하든 관련 라이브러리와 메서드를 사용하여 수행할 수 있습니다. 이러한 변환을 통해 서로 다른 데이터 형식 간에 데이터를 쉽게 교환하고 처리할 수 있습니다. 실제 개발에서는 특정 요구 사항에 따라 다양한 데이터 형식을 구문 분석하고 생성하기 위해 적절한 방법이 선택됩니다. 🎜위 내용은 Python은 XML과 JSON 간의 변환을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Linux 터미널에서 Python 버전을 보려고 할 때 Linux 터미널에서 Python 버전을 볼 때 권한 문제에 대한 솔루션 ... Python을 입력하십시오 ...

Python의 Pandas 라이브러리를 사용할 때는 구조가 다른 두 데이터 프레임 사이에서 전체 열을 복사하는 방법이 일반적인 문제입니다. 두 개의 dats가 있다고 가정 해

Python : 모래 시계 그래픽 도면 및 입력 검증을 시작 하기이 기사는 모래 시계 그래픽 드로잉 프로그램에서 Python 초보자가 발생하는 변수 정의 문제를 해결합니다. 암호...

파이썬 프로그래밍에서 Python 매개 변수 주석의 대체 사용법, 매개 변수 주석은 개발자가 기능을 더 잘 이해하고 사용하는 데 도움이되는 매우 유용한 기능입니다 ...

Python 스크립트는 특정 위치에서 Cursor 위치로 출력을 어떻게 제거합니까? Python 스크립트를 작성할 때 이전 출력을 커서 위치로 지우는 것이 일반적입니다 ...

Python 크로스 플랫폼 데스크톱 응용 프로그램 개발 라이브러리 선택 많은 Python 개발자가 Windows 및 Linux 시스템 모두에서 실행할 수있는 데스크탑 응용 프로그램을 개발하고자합니다 ...

매일 네트워크 상호 작용에서 파이썬을 사용한 크래킹 검증 코드 탐색, 검증 코드는 자동화 된 프로그램의 악성 조작을 방지하는 일반적인 보안 메커니즘입니다 ...

파이썬에서 문자열을 통해 객체를 동적으로 생성하고 메소드를 호출하는 방법은 무엇입니까? 특히 구성 또는 실행 해야하는 경우 일반적인 프로그래밍 요구 사항입니다.
