【发布时间】:2020-07-28 18:49:21
【问题描述】:
请帮助为该任务编写有意义的代码: 我需要计算 XML OpenStreet Map 文件中的所有标签“way”,每个标签中“nd”标签的数量,并输入标签“way”的 id,其中包括最大数量的标签“nd”。如果有多个 ide,则按字母顺序输入第一个。看起来很简单,但我不明白如何操作。 (我只认为使用词汇会有用) 这是代码:
from urllib.request import urlopen, urlretrieve
from bs4 import BeautifulSoup
resp = urlopen('https://stepik.org/media/attachments/lesson/245681/map2.osm') #
xml = resp.read().decode('utf8') #
soup = BeautifulSoup(xml, 'xml') # делаем суп с помощью lxml
cnt = 0
names ={}
for way in soup.find_all('way'): # go through the nodes
flag=False
for nd in way('nd'):
flag=True
if nd['k'] == 'id':
name=nd['v']
if flag:
if name not in names:
names[name]=0
names[name]+=1
print(sort(names))
【问题讨论】:
标签: python xml beautifulsoup nodes openstreetmap