xmltodict
xmltodict copied to clipboard
dict to xml - how to discard the parent tag repeating for conversion from list
Hi everyone.
From this dictionary:
feed = {
'feed': {
'reviewer_images': [
{
'reviewer_image': {
'url': "http://google.com"
}
},
{
'reviewer_image': {
'url': "http://google.com"
}
}
]
}
}
I have got:
<?xml version="1.0" encoding="utf-8"?>
<feed>
<reviewer_images>
<reviewer_image>
<url>http://google.com</url>
</reviewer_image>
</reviewer_images>
<reviewer_images>
<reviewer_image>
<url>http://github.com</url>
</reviewer_image>
</reviewer_images>
</feed>
Is it possible to get several reviewer_image
inside identical reviewer_images
tag?:
<?xml version="1.0" encoding="utf-8"?>
<feed>
<reviewer_images>
<reviewer_image>
<url>http://google.com</url>
</reviewer_image>
<reviewer_image>
<url>http://github.com</url>
</reviewer_image>
</reviewer_images>
</feed>
Having the same issue, any help will be appreciated.
A bit late to the party:
feed = {
'feed': {
'reviewer_images': {
'reviewer_image': [
{
'url': "http://google.com"
},
{
'url': "http://google.com"
}
]
}
}
}
print(xmltodict.unparse(feed, pretty=True))
Result:
<?xml version="1.0" encoding="utf-8"?>
<feed>
<reviewer_images>
<reviewer_image>
<url>http://google.com</url>
</reviewer_image>
<reviewer_image>
<url>http://google.com</url>
</reviewer_image>
</reviewer_images>
</feed>
To generate multiple <foo>
you have to use { "foo": […] }
and not [ {"foo": …}, {"foo": …} ]
.