如何使用 BeautifulSoup 拆分 xml 文件中的多值属性?
How can you split a multi-valued attribute in an xml file using BeautifulSoup?
所以,我有一个 xml 数据非常混乱,需要解析它以便我可以将它插入数据库。
这里是 XML 的例子:
<GenericItem html='ID: AAA1<br/>Age: 12<br/>Name: Baryk <'>
Employee:
</GenericItem>
如何拆分 html 标签的值,以便获得姓名、年龄和 ID?
我把你的数据当成html
from bs4 import BeautifulSoup
html="""<GenericItem html='ID: AAA1<br/>Age: 12<br/>Name: Baryk <'>
Employee:
</GenericItem>
"""
soup=BeautifulSoup(html,"lxml")
我已经找到 genericitem
标签并根据 <br/>
进行拆分,内部循环拆分使用符号 :
将值作为键值对添加到 data_dict
dict_data={}
tag=soup.find("genericitem")['html'].split("<br/>")
for data in tag:
info=data.split(":")
value=info[0]
data=info[1].strip()
dict_data[value]=data
输出:
{'ID': 'AAA1', 'Age': '12', 'Name': 'Baryk <'}
试试这个!
你只需要做一些字符串 manipulation/cleaning 来获取你想要的数据。我刚打印出来,如果你想的话,你可以把它保存在一个变量中。
from bs4 import BeautifulSoup
source = "<GenericItem html='ID: AAA1<br/>Age: 12<br/>Name: Baryk <'>Employee:</GenericItem>"
soup = BeautifulSoup(source, 'lxml')
for each in soup.find("genericitem").get("html").split("<br/>"):
print(each.split(":")[1].replace("<", "").strip())
您可以使用 BeautifulSoup 和 'lxml'
进行解析和重新解析
from bs4 import BeautifulSoup as bs
to_parse = '''<GenericItem html='ID: AAA1<br/>Age: 12<br/>Name: Baryk <'>
Employee:
</GenericItem>'''
soup = bs(to_parse, 'lxml')
print([i.split(': ')[-1] for i in bs(soup.select_one('genericitem')['html'], 'lxml').select_one('p').stripped_strings])
所以,我有一个 xml 数据非常混乱,需要解析它以便我可以将它插入数据库。
这里是 XML 的例子:
<GenericItem html='ID: AAA1<br/>Age: 12<br/>Name: Baryk <'>
Employee:
</GenericItem>
如何拆分 html 标签的值,以便获得姓名、年龄和 ID?
我把你的数据当成html
from bs4 import BeautifulSoup
html="""<GenericItem html='ID: AAA1<br/>Age: 12<br/>Name: Baryk <'>
Employee:
</GenericItem>
"""
soup=BeautifulSoup(html,"lxml")
我已经找到 genericitem
标签并根据 <br/>
进行拆分,内部循环拆分使用符号 :
将值作为键值对添加到 data_dict
dict_data={}
tag=soup.find("genericitem")['html'].split("<br/>")
for data in tag:
info=data.split(":")
value=info[0]
data=info[1].strip()
dict_data[value]=data
输出:
{'ID': 'AAA1', 'Age': '12', 'Name': 'Baryk <'}
试试这个!
你只需要做一些字符串 manipulation/cleaning 来获取你想要的数据。我刚打印出来,如果你想的话,你可以把它保存在一个变量中。
from bs4 import BeautifulSoup
source = "<GenericItem html='ID: AAA1<br/>Age: 12<br/>Name: Baryk <'>Employee:</GenericItem>"
soup = BeautifulSoup(source, 'lxml')
for each in soup.find("genericitem").get("html").split("<br/>"):
print(each.split(":")[1].replace("<", "").strip())
您可以使用 BeautifulSoup 和 'lxml'
进行解析和重新解析from bs4 import BeautifulSoup as bs
to_parse = '''<GenericItem html='ID: AAA1<br/>Age: 12<br/>Name: Baryk <'>
Employee:
</GenericItem>'''
soup = bs(to_parse, 'lxml')
print([i.split(': ')[-1] for i in bs(soup.select_one('genericitem')['html'], 'lxml').select_one('p').stripped_strings])