У меня есть следующий код:
def result_saml_decoded(result_saml):
"""Illustrate to result saml decoded value as response in a string.
:param result_saml:results saml decoded
:return:return principle_arn, resultsamldecoded, role_arns
"""
result_saml_decoded = base64.b64decode(result_saml)
root = ET.fromstring(result_saml_decoded)
principle_arns, role_arns = [], []
inner_saml_tag = [saml2 for saml2 in root._children if 'Assertion' in saml2.tag]
attribute_saml_tag = [saml_tag for saml_tag in inner_saml_tag[0]._children
if 'AttributeStatement' in saml_tag.tag]
for inner_saml_tag in attribute_saml_tag[0]._children:
if 'uri' in inner_saml_tag.get('NameFormat'):
for saml_data in inner_saml_tag._children:
parts = saml_data.text.split(',')
principle_arns.append(parts[0])
role_arns.append(parts[1])
return principle_arns, role_arns
, который работает в Python 2.7, но не работает в Python 3.6 с:
Traceback (последний вызов был последним):
Файл "/Users/kaulk/sandbox/oktapod1/oktapod/helpers.py", строка 135, в
assume_role
incip_arns, role_arns = result_saml_decoded (resultsaml)
Файл "/Users/kaulk/sandbox/oktapod1/oktapod/helpers.py", строка 188, в
result_saml_decoded
inner_saml_tag = [saml2 для saml2 в root._children, если 'Утверждение' в
saml2.tag]
AttributeError: у объекта 'xml.etree.ElementTree.Element' нет атрибута
'_Children'
что я должен использовать для кода, который должен быть совместим с py27 и 36?