【发布时间】:2019-08-26 13:14:39
【问题描述】:
我有一个包含一些开放街道地图节点的 XML 文件。我正在尝试随机选择一个节点。为此,我首先将所有节点的 id 放入一个数组中,然后随机选择一个 id。然后我希望获得具有该 ID 号的节点。
现在,我读取 xml 文件并执行以下操作:
tree = ET.parse('/Users/XXX/Documents/map.osm.xml')
root = tree.getroot()
idd = [] # ids of the nodes
for n in root.iter('node'):
idd.append( n.attrib["id"] )
循环中的每个n.attrib 都是这样的:
{'id': '6676298011', 'visible': 'true', 'version': '1', 'changeset': '72944617', 'timestamp': '2019-08-02T14:49:11Z', 'user': 'bkrc', 'uid': '8150490', 'lat': '41.0836908', 'lon': '29.0511424'}
如何获取 id 为 6677592585 的那个?
# whole code :
import xml.etree.ElementTree as ET
import random
import json
tree = ET.parse('/Users/XXX/Documents/map.osm.xml')
root = tree.getroot()
idd = []
for n in root.iter('node'):
idd.append( n.attrib["id"] )
i = idd[0]
print(i)
【问题讨论】:
-
if '6677592585' == n.attrib["id"]:然后附加它或获取任何你想要的。 -
我有列表 idd,节点的 ids。我完成了循环来拥有它。然后我将从该列表中获得一个随机值。你认为我应该做另一个循环来找到它吗?我认为有一种更简单的方法。
-
我个人不会再循环,它不允许可扩展性。但我不知道你对这段代码有什么打算。
标签: python json xml elementtree