[파이썬] `PyQt`에서의 XML 및 JSON 핸들링

PyQt는 파이썬에서 사용되는 강력한 GUI 프레임워크이며, XML 및 JSON과 같은 데이터 형식을 처리하는 기능도 포함하고 있습니다. 이러한 기능을 통해 PyQt를 사용하여 XML 및 JSON 데이터를 읽고 쓰고 처리할 수 있습니다.

XML 핸들링

XML은 데이터를 계층적으로 구조화하는 데 사용되는 인기있는 형식입니다. PyQt에서는 QXmlStreamReaderQXmlStreamWriter 클래스를 사용하여 XML 데이터를 처리할 수 있습니다. 아래는 PyQt에서 XML 핸들링을 수행하는 예제 코드입니다.

from PyQt5.QtCore import QXmlStreamReader, QXmlStreamWriter

# XML 데이터 읽기
def read_xml_data(xml_data):
    xml = QXmlStreamReader(xml_data)
    while not xml.atEnd():
        xml.readNext()
        if xml.isStartElement():
            element_name = xml.name().toString()
            element_value = xml.readElementText().toString()
            print(f"Element name: {element_name}, Element value: {element_value}")
    xml.clear()

# XML 데이터 쓰기
def write_xml_data(file_path):
    xml = QXmlStreamWriter()
    xml.setAutoFormatting(True)
    xml.setDevice(open(file_path, 'w'))
    xml.writeStartDocument()
    xml.writeStartElement("root")
    xml.writeTextElement("element1", "value1")
    xml.writeTextElement("element2", "value2")
    xml.writeEndElement()
    xml.writeEndDocument()
    xml.device().close()

# XML 데이터 예제
xml_data = """
<root>
    <element1>value1</element1>
    <element2>value2</element2>
</root>
"""

# XML 데이터 읽기
read_xml_data(xml_data)

# XML 데이터 쓰기
write_xml_data("output.xml")

JSON 핸들링

JSON은 데이터 교환을 위한 경량 데이터 형식으로 많이 사용됩니다. PyQt에서는 QJsonDocumentQJsonObject 클래스를 사용하여 JSON 데이터를 처리할 수 있습니다. 아래는 PyQt에서 JSON 핸들링을 수행하는 예제 코드입니다.

from PyQt5.QtCore import QJsonDocument, QJsonObject

# JSON 데이터 읽기
def read_json_data(json_data):
    json_doc = QJsonDocument.fromJson(json_data.encode())
    json_object = json_doc.object()
    for key in json_object.keys():
        value = json_object.value(key).toString()
        print(f"Key: {key}, Value: {value}")

# JSON 데이터 쓰기
def write_json_data(file_path):
    json_object = QJsonObject()
    json_object["element1"] = "value1"
    json_object["element2"] = "value2"
    json_doc = QJsonDocument(json_object)

    with open(file_path, 'w') as file:
        file.write(json_doc.toJson().data().decode())

# JSON 데이터 예제
json_data = """
{
    "element1": "value1",
    "element2": "value2"
}
"""

# JSON 데이터 읽기
read_json_data(json_data)

# JSON 데이터 쓰기
write_json_data("output.json")

이와 같이 PyQt에서 XML 및 JSON 데이터를 처리할 수 있습니다. 이러한 기능을 활용하여 PyQt 애플리케이션에서 다양한 데이터 형식을 처리할 수 있습니다.