Apr-26-2019, 08:52 AM
I have a function which makes get request, parse xml file and returns:
def get_object(object_name):
...
encoded_text = response.text.encode('utf-8', 'replace')
root = ET.fromstring(encoded_text)
tree = ET.ElementTree(root)
return tree
Then I loop through tasks with this function and want to put it inside one variable:
jx_task_tree = ''
for jx in jx_tasks_lst:
jx_task_tree += str(get_object(jx))
jx_task_tree += ('\n')
Then I want to parse jx_task_tree:
root = ET.fromstring(jx_task_tree).encode('utf-8')
tree_out = ET.tostring(root)
print(tree_out)But it throws me an error:File "import_uac_wf.py", line 51, in <module>
root = ET.fromstring(jx_task_tree).encode('utf-8')
File "/usr/lib64/python2.7/xml/etree/ElementTree.py", line 1300, in XML
parser.feed(text)
File "/usr/lib64/python2.7/xml/etree/ElementTree.py", line 1642, in feed
self._raiseerror(v)
File "/usr/lib64/python2.7/xml/etree/ElementTree.py", line 1506, in
_raiseerror
raise err
xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1,
column 42When using this:parser = ET.XMLParser(encoding="utf-8") tree = ET.parse(jx_tasks_lst, parser=parser) print(ET.tostring(tree.getroot()))There is error:
Traceback (most recent call last):
File "import_uac_wf.py", line 57, in <module>
tree = ET.parse(jx_tasks_lst, parser=parser)
File "/usr/lib64/python2.7/xml/etree/ElementTree.py", line 1182, in parse
tree.parse(source, parser)
File "/usr/lib64/python2.7/xml/etree/ElementTree.py", line 647, in parse
source = open(source, "rb")
TypeError: coercing to Unicode: need string or buffer, list foundCan anybody help what am I doing wrong or how to fix it?
