从python中的数据创建字典

2024-03-28 18:12:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有HTML数据:

comp_row = """
  <div class="row odd">
    <ul>
      <li class="ttl"><a href="/companies/20-microns/533022">20 Microns</a></li>
      <li>533022</li>
      <li>20MICRONS</li>
    </ul>
  </div>
  <div class="row odd">
    <ul>
      <li class="ttl"><a href="/companies/3i-infotech/532628">3i Infotech</a></li>
      <li>532628</li>
      <li>3IINFOTECH</li>
    </ul>
  </div>"""

预期数据:

[533022 = {
"name":"20 Microns",
"bsecode":533022,
"nsecode":"20MICRONS"
},

532628= {
"name":"3i-infotech",
"bsecode":532628,
"nsecode":"3IINFOTECH"
}]

我可以实现这样的数据吗?这是保存这样的数据的好格式还是以后可以访问的其他格式


Tags: 数据namedivliulclassrowhref
1条回答
网友
1楼 · 发布于 2024-03-28 18:12:41

漂亮的soup4库非常适合这样解析HTML

from bs4 import BeautifulSoup
comp_row = """
<div class="row odd">
  <ul>
  <li class="ttl"><a href="/companies/20-microns/533022">20 Microns</a></li><li>533022</li><li>20MICRONS</li>
  </ul>
</div>
<div class="row odd">
  <ul>
      <li class="ttl"><a href="/companies/3i-infotech/532628">3i Infotech</a></li><li>532628</li><li>3IINFOTECH</li>
  </ul>
</div>
"""

html = BeautifulSoup(comp_row, "lxml")

data = {}

for row in html.find_all("div"):
  link = row.find("a")
  nsecode = row.find_all("li")[-1].text
  name = link.text
  bsecode = int(link["href"].split("/")[3])
  data[bsecode] = {
    "name": name,
    "bsecode": bsecode,
    "nsecode": nsecode,
  }

相关问题 更多 >