json2xml
json2xml copied to clipboard
@attrs keyword does not work at the root level
Describe the bug
Attempting to declare attributes for the 'wrapper' node results in them being added as their own nodes.
To Reproduce
Steps to reproduce the behavior:
from json2xml.json2xml import Json2xml
from json2xml.utils import readfromstring
data = {
"@attrs": {
"a": "b"
}
}
result = Json2xml(data).to_xml()
print(result)
Result:
<?xml version="1.0" ?>
<all>
<key name="@attrs" type="dict">
<a type="str">b</a>
</key>
</all>
Expected behavior
It should print something more like this:
<?xml version="1.0" ?>
<all a="b"/>
Desktop (please complete the following information):
- OS: Windows
- Python version 3.11
-
json2xml.__version__
: 4.0.0
Might want to close this issue since there is a convenient workaround
data = { ... }
data = {"all": data}
result = Json2xml(data, root=False).to_xml()