Python:如果没有XML标记,则打印';空白';连同产量 data=” 约翰 塞纳 管理员 桑尼维尔 19 做记号 代理人 班加罗尔 22 帕特里克 菲利普斯 开发商 费城 28 帕特里克 开发商 费城 28 " 导入请求 从bs4导入BeautifulSoup 导入lxml soup=BeautifulSoup(数据,lxml') last_name=[v.get_text()如果是soup.find_all('lastname'),则soup中的v为“空白”。find_all('lastname')] 打印(姓氏)

Python:如果没有XML标记,则打印';空白';连同产量 data=” 约翰 塞纳 管理员 桑尼维尔 19 做记号 代理人 班加罗尔 22 帕特里克 菲利普斯 开发商 费城 28 帕特里克 开发商 费城 28 " 导入请求 从bs4导入BeautifulSoup 导入lxml soup=BeautifulSoup(数据,lxml') last_name=[v.get_text()如果是soup.find_all('lastname'),则soup中的v为“空白”。find_all('lastname')] 打印(姓氏),python,xml,beautifulsoup,python-requests,lxml,Python,Xml,Beautifulsoup,Python Requests,Lxml,这是上述代码的输出 [“塞纳”,“菲利普斯”] 上面的代码有什么问题?有人告诉我上面的代码需要更改什么吗?我想要下面的输出。(即,如果XML标记不存在,则应添加“空白”) [‘塞纳’、‘布兰克’、‘菲利普斯’、‘布兰克’] 尝试: 查找所有nametag-->soup.Find_all('name') 检查name是否有lastname标记-->if v.find('lastname') 试试: 查找所有nametag-->soup.Find_all('name') 检查name是否有las

这是上述代码的输出

[“塞纳”,“菲利普斯”]

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

[‘塞纳’、‘布兰克’、‘菲利普斯’、‘布兰克’]

尝试:

  • 查找所有
    name
    tag-->
    soup.Find_all('name')
  • 检查
    name
    是否有
    lastname
    标记-->
    if v.find('lastname')
试试:

  • 查找所有
    name
    tag-->
    soup.Find_all('name')
  • 检查
    name
    是否有
    lastname
    标记-->
    if v.find('lastname')
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)
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)