我设法抓取所有图片网址,并按正确方式输出图像结果字段:
'image': [{'checksum': 'c2cc74b428a3fb18d6ac8d47978c98cb',
'path': 'full/33032b22901636542bef9dd6d3b6e98d1f7eb463.jpg',
'url': 'image-url.com/ID7b6b6700-0000-0500-0000-000003422a59.jpg'},
{'checksum': '3c21a99a0d45870e4ab79f201f97c35e',
'path': 'full/8f7d216aee4942987860c77efff0595bfcdccdf9.jpg',
'url': 'http://image-url.com/ID7b6b6700-0000-0500-0000-000003422a5b.jpg'}]
我正在尝试将图像路径包装在XML节点<image>
中,但我无法弄清楚正确的方法是什么。
现在,我猜输出是这样的,因为它是一个来自列表的可迭代值:
<image>
<value>
<url>
http://image-url.com/ID0df36700-0000-0500-0000-00000346f2d2.jpg
</url>
<path>full/8df264408df9bb24e7d750f61828239534d96497.jpg</path>
<checksum>d87852609293934aa91edd649d3051aa</checksum>
</value>
</image>
我希望每个图像路径的输出如下:因为我不需要其他字段:
<image>full/8df264408df9bb24e7d750f61828239534d96497.jpg</image>
我尝试使用序列化程序函数来格式化字段,但我无法真正让它为每个图像路径输出一个新节点。 我可以指出正确的方向吗?
答案 0 :(得分:1)
import xml.etree.ElementTree as ET
tree = ET.parse('file.xml')
root = tree.getroot()
for child in root[0]:
if child.tag == url:
url = child.text
if child.tag == path:
path = child.text
print child.tag,child.text
如果“image”是root,那么“value”将是root [0] “url”和“path”将是root [0]的孩子
如果你有很多“值”,你可以使用for循环来改变root [x]。