Python:如果没有XML标签,则打印"空白"以及输出


data="<database>
<zone1>
<name>
<firstname>John</firstname> 
<lastname>cena</lastname> 
<job>Administrator</job> 
<location>sunnyvale</location> 
<age>19</age> 
</name>
</zone1>
<zone2>
<name>
<firstname>mark</firstname> 
<job>Agent</job> 
<location>Bangalore</location> 
<age>22</age> 
</name>
</zone2>
<zone3>
<name>
<firstname>patrick</firstname> 
<lastname>phillips</lastname>
<job>Developer</job> 
<location>Philadelphia</location> 
<age>28</age> 
</name>
</zone3>
<zone4>
<name>
<firstname>patrick</firstname> 
<job>Developer</job> 
<location>Philadelphia</location> 
<age>28</age> 
</name>
</zone4>
</database>"    
import requests
from bs4 import BeautifulSoup
import lxml
soup = BeautifulSoup(data,lxml')
last_name=[v.get_text() if soup.find_all('lastname') else 'blank' for v in soup.find_all('lastname')]
print (last_name)

这是上面代码的输出。

上面的代码出了什么问题?有人告诉我上面的代码需要更改什么吗?我想要下面的输出。(即,如果XML标签不存在,则应添加"空白"(

["ena","lank","hillips","blank"]

尝试:

from bs4 import BeautifulSoup
import lxml
soup = BeautifulSoup(data,'lxml')
last_name=[v.find('lastname').get_text() if v.find('lastname') else 'blank' for v in soup.find_all('name')]
print (last_name)
  • 查找所有name标记-->soup.find_all('name')
  • 检查name是否有lastname标记-->if v.find('lastname')

最新更新