You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python解析HTML pre标签:如何将缩进文本追加至前一行

解决Bioconductor包元数据多行值的解析问题

你的现有代码没法处理元数据里不含冒号的行,这类行需要追加到前一行的对应值中,可通过逐行遍历每个包的元数据块实现需求,具体代码如下:

import requests

response = requests.get('https://bioconductor.org/packages/release/bioc/VIEWS')
# 分割出每个包的元数据块
package_blocks = response.text.split('\n\n')

all_packages = []
for block in package_blocks:
    package_info = {}
    current_key = None
    # 遍历当前包的每一行元数据
    for line in block.split('\n'):
        line = line.strip()
        if not line:
            continue
        if ':' in line:
            # 仅按第一个冒号拆分键值对
            key, value = line.split(':', 1)
            package_info[key.strip()] = value.strip()
            current_key = key.strip()
        else:
            # 将无冒号的行追加到前一个键的值中
            if current_key:
                package_info[current_key] += f' {line}'
    if package_info:
        all_packages.append(package_info)

# 示例:查看第一个包的解析结果
print(all_packages[0])

关键处理逻辑:

  1. 先按空行拆分出单个包的元数据块,再对每个块逐行解析。
  2. 遇到带冒号的行时,拆分出键和值并记录当前活跃的键;遇到无冒号的行时,直接把内容追加到当前键对应的值末尾。
  3. 跳过空行,避免无效内容干扰解析结果。

内容的提问来源于stack exchange,提问作者Dylan Welzel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 01:54:26