Python implements conversion between XML and JSON
Introduction:
In the daily development process, we often need to convert data between different formats Make the conversion. XML and JSON are common data exchange formats. In Python, we can use various libraries to convert between XML and JSON. This article will introduce several commonly used methods, with code examples.
1. XML to JSON
In Python, we can use the xml.etree.ElementTree module to parse and generate XML. Instead use the json module to parse and generate JSON. Here is an example of converting XML to 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
Code description:
xml.etree.ElementTree
module The fromstring method converts an XML string into an Element object.
function that accepts an XML string as a parameter and converts the parsed result into a JSON string.
function, we first get the tag of the root element and use it as the outermost key.
function to recursively convert each XML element to dictionary format.
function, we first determine whether the current element has attributes, and if so, convert it to the
@attributes key of the dictionary.
function to parse the child elements.
Contrary to XML to JSON, we can use the xml.etree.ElementTree module to generate XML and the json module to parse and generate JSON. The following is an example of converting JSON to 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)
method of the json module to parse the JSON string is a Python dictionary object.
function to recursively convert the dictionary to XML format.
function, we first determine whether the current data is a dictionary type, and if so, iterate the key-value pairs of the dictionary.
function is called recursively.
function recursively.
Through the above code examples, we can achieve mutual conversion between XML and JSON in Python. Whether it is converting from XML to JSON or from JSON to XML, it can be achieved using relevant libraries and methods. Through these conversions, we can easily exchange and process data between different data formats. In actual development, appropriate methods are selected to parse and generate different data formats according to specific needs.
The above is the detailed content of Python implements conversion between XML and JSON. For more information, please follow other related articles on the PHP Chinese website!