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
モジュールを使用します。 # メソッドは XML 文字列を Element オブジェクトに変換します。
次に、XML 文字列をパラメータとして受け取り、解析された結果を JSON 文字列に変換する
次に、
@attributes
キーに変換します。
次に、現在の要素にテキスト コンテンツがあるかどうかを判断し、テキスト コンテンツがある場合は、それを辞書のキーと値のペアに変換します。
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)
次に、ルート要素を作成し、そのタグを辞書のキーに設定します。
値が辞書型の場合、子要素が作成され、
値がリスト型の場合は、リスト内の各要素を反復処理し、同じタグを持つ複数のサブ要素を作成し、
値が別の基本データ型である場合は、それをテキスト コンテンツとして現在の要素に追加します。 以上がPython は XML と JSON 間の変換を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。