Вы можете использовать библиотеку xmljson для преобразования с использованием различных XML JSON соглашений .
Например, этот XML:
<p id="1">text</p>
переводится через соглашение BadgerFish в это:
{
'p': {
'@id': 1,
'$': 'text'
}
}
и через соглашение GData в это (атрибуты не поддерживаются):
{
'p': {
'$t': 'text'
}
}
... и через соглашение Паркера в это (атрибуты не поддерживаются):
{
'p': 'text'
}
Можно конвертировать из XML в JSON и из JSON в XML, используя один и тот же
условные обозначения:
>>> import json, xmljson
>>> from lxml.etree import fromstring, tostring
>>> xml = fromstring('<p id="1">text</p>')
>>> json.dumps(xmljson.badgerfish.data(xml))
'{"p": {"@id": 1, "$": "text"}}'
>>> xmljson.parker.etree({'ul': {'li': [1, 2]}})
# Creates [<ul><li>1</li><li>2</li></ul>]
Раскрытие: я написал эту библиотеку. Надеюсь, это поможет будущим искателям.