Я пытаюсь написать метод канонизации xml usign python 3.6
На данный момент у меня есть эта функция, которая получает XML как параметр, закодированный в base64, поэтому я должен декодировать его, чтобы иметь возможность работать с ним
def canonicalize(xml, c14n_exc=True):
"Return the canonical (c14n) form of the xml document for hashing"
# UTF8, normalization of line feeds/spaces, quoting, attribute ordering...
xml_decoder = base64.b64decode(xml).decode("utf-8")
output = StringIO()
if xml_decoder is not None:
# use faster libxml2 / lxml canonicalization function if available
et = lxml.etree.parse(StringIO(xml_decoder))
et.write_c14n(output, exclusive=c14n_exc)
#else:
# use pure-python implementation: c14n.py (avoid recursive import)
#from .simplexml import SimpleXMLElement
#SimpleXMLElement(xml).write_c14n(output, exclusive=c14n_exc)
return output.getvalue()
проблема в том, что я получаю следующую ошибку
valueError:: "ожидается строковый аргумент, получены байты" при оценке
Есть идеи, что я делаю не так?
Спасибо