<p>可以将列存储在数组中,然后创建数据帧:</p>
<pre><code>from collections import defaultdict
from bs4 import BeautifulSoup
import pandas as pd
soup = BeautifulSoup("""
<labelinteraction precipitant="ritonavir" precipitantcode="N0000007423" type="Unspecified interaction"></labelinteraction>
<labelinteraction precipitant="gc stimulator" precipitantcode="NO MAP" type="Unspecified interaction"></labelinteraction>
<LabelInteraction type="Pharmacodynamic interaction" precipitant="alcohol" precipitantCode="N0000007432" effect=" 25064002: Headache (finding)"/>
""")
columns = ['precipitant', 'precipitantcode', 'type', 'effect']
d = defaultdict(list)
for labelinteraction in soup.findAll('labelinteraction'):
for col in columns:
d[col].append(labelinteraction[col] if labelinteraction.has_attr(col) else None)
df = pd.DataFrame(d)
</code></pre>
<p>输出:</p>
<pre><code> precipitant precipitantcode type effect
0 ritonavir N0000007423 Unspecified interaction None
1 gc stimulator NO MAP Unspecified interaction None
2 alcohol N0000007432 Pharmacodynamic interaction 25064002: Headache (finding)
</code></pre>