ホームページ  >  記事  >  バックエンド開発  >  Python は XML と JSON 間の変換を実装します

Python は XML と JSON 間の変換を実装します

WBOY
WBOYオリジナル
2023-08-07 19:10:494317ブラウズ

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

コードの説明:

  1. まず、xml.etree.ElementTree モジュールを使用します。 # メソッドは XML 文字列を Element オブジェクトに変換します。 次に、XML 文字列をパラメータとして受け取り、解析された結果を JSON 文字列に変換する
  2. xml_to_json
  3. 関数を定義します。
  4. xml_to_json
  5. 関数では、まずルート要素のタグを取得し、それを最も外側のキーとして使用します。 次に、
  6. xml_to_dict
  7. 関数を呼び出して、各 XML 要素を辞書形式に再帰的に変換します。
  8. xml_to_dict
  9. 関数では、まず現在の要素に属性があるかどうかを判断し、属性がある場合はそれを辞書の @attributes キーに変換します。 次に、現在の要素にテキスト コンテンツがあるかどうかを判断し、テキスト コンテンツがある場合は、それを辞書のキーと値のペアに変換します。
  10. 最後に、現在の要素の子要素を反復処理し、
  11. xml_to_dict
  12. 関数を再帰的に呼び出して子要素を解析します。
  13. 2. 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
  1. メソッドを使用して、 JSON文字列はPythonの辞書オブジェクトです。 次に、ルート要素を作成し、そのタグを辞書のキーに設定します。
  2. 次に、
  3. convert_dict_to_xml
  4. 関数を呼び出して、辞書を XML 形式に再帰的に変換します。
  5. convert_dict_to_xml
  6. 関数では、まず現在のデータが辞書型であるかどうかを判断し、そうである場合は辞書のキーと値のペアを繰り返します。 値が辞書型の場合、子要素が作成され、
  7. convert_dict_to_xml
  8. 関数が再帰的に呼び出されます。 値がリスト型の場合は、リスト内の各要素を反復処理し、同じタグを持つ複数のサブ要素を作成し、
  9. convert_dict_to_xml
  10. 関数を再帰的に呼び出します。 値が別の基本データ型である場合は、それをテキスト コンテンツとして現在の要素に追加します。
  11. 概要:
上記のコード例を通じて、Python で XML と JSON 間の相互変換を実現できます。 XML から JSON への変換でも、JSON から XML への変換でも、関連するライブラリとメソッドを使用して実現できます。これらの変換により、異なるデータ形式間でデータを簡単に交換および処理できます。実際の開発では、特定のニーズに応じて適切な方法が選択され、さまざまなデータ形式を解析および生成します。

以上がPython は XML と JSON 間の変換を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。