我试图从返回XML的API中获取一些信息。我在根上循环,然后是子元素,不过,它只是拾取第一个元素。以下是一些示例xml数据:
<?xml version="1.0" encoding="ISO-8859-1"?>
<result created="2020-06-14T12:54:08-05:00" host="www.systemmonitor.us" status="OK">
<items>
<site>
<siteid>144855</siteid>
<name>
<![CDATA[NC 99 S]]>
</name>
<connection_ok>1</connection_ok>
<creation_date/>
<primary_router/>
<secondary_router/>
</site>
<site>
<siteid>148578</siteid>
<name>
<![CDATA[Trial Accounts]]>
</name>
<connection_ok>1</connection_ok>
<creation_date>2013-09-28</creation_date>
<primary_router/>
<secondary_router/>
</site>
<site>
<siteid>166088</siteid>
<name>
<![CDATA[NEW ACCOUNTS]]>
</name>
<connection_ok>1</connection_ok>
<creation_date>2014-01-08</creation_date>
<primary_router/>
<secondary_router/>
</site>
<site>
<siteid>606559</siteid>
<name>
<![CDATA[Enhanced]]>
</name>
<connection_ok>1</connection_ok>
<creation_date>2019-09-14</creation_date>
<primary_router/>
<secondary_router/>
</site>
</items>
我的代码包括:
r = requests.get('https://www.systemmonitor.us//api/?
apikey=*******c&service=list_sites&clientid=%s' % rmmid)
root = ET.fromstring(r.content)
print(root)
sitelist = {}
for child in root.findall('items'):
for sites in child.findall('site'):
print(sites)
site_info = {}
name = sites.find("name").text
guid = sites.find("siteid").text
sitelist[guid] = site_info
site_info['id'] = guid
site_info['name'] = name
for key, value in sitelist.items():
print(key, value)
return redirect('/computers/home')
return redirect('/computers/home')
我得到了第一个元素,但它似乎没有循环通过其他元素。我尝试过使用.iter和其他.findall调用。我错过了什么
在for循环的主体中使用
return
语句将阻止它循环。return
语句将导致控件离开它所在的任何函数当程序在函数(或函数内部的循环)中有
return
时,它将中断该函数并“返回”结果(返回关键字后面的表达式值)给调用方。返回语句之后的语句不会执行。如果return语句没有任何表达式,则返回特殊值None下面的代码将帮助您更好地理解
相关问题 更多 >
编程相关推荐