'How to write Element Tree dump into file

I am try to write the xml dump into the another file. Here is my python code

import xml.etree.ElementTree as ET
tree = ET.parse('extract_orginal.xml')
root = tree.getroot()
with open('extract.xml', 'w') as extract:
    for item in root.findall(f"doc[@id='289e1292134534']"):
        extract.write(ET.dump(item))

Getting the output as "NONE" in the extract.xml file. Can you please help me.



Solution 1:[1]

From the docs of .dump():

"Write element tree or element structure to sys.stdout. This function should be used for debugging only."

The function .dump() returns None! I think you want to use .tostring():

import xml.etree.ElementTree as ET
tree = ET.parse('extract_orginal.xml')
root = tree.getroot()
with open('extract.xml', 'w') as extract:
    for item in root.findall(f"doc[@id='289e1292134534']"):
        extract.write(ET.tostring(item, encoding="utf-8"))

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1