我已经在python中编写了一个与BeautifulSoup结合使用的脚本来解析一些xml
元素中的一些名称但由于某种原因,脚本在print语句之前抛出属性错误。我怎样才能使它工作?提前谢谢。
到目前为止我已尝试过:
from bs4 import BeautifulSoup
content="""
<ns:Car>
<ns:Model>sedan</ns:Model>
<ns:Model>coupe</ns:Model>
<ns:Model>hatchback</ns:Model>
<ns:Model>convertible</ns:Model>
</ns:Car>
"""
soup = BeautifulSoup(content,"xml")
for items in soup.find("ns:Car").find_all("ns:Model"):
print(items)
预期产出:
sedan
coupe
hatchback
convertible
它抛出的错误:
for items in soup.find("ns:Car").find_all("ns:Model"):
AttributeError: 'NoneType' object has no attribute 'find_all'
顺便说一下,我不愿意遵守与regular expression
相关的任何解决方案。我喜欢使用BeautifulSoup
解析相同内容。
答案 0 :(得分:0)
您对soup.find("ns:Car")
的调用是返回NoneType
类型的对象,而您正在尝试调用此find_all
对象的NoneType
方法。尝试将最后几行更改为:
for items in soup.find("Car").find_all("Model"):
print(items)