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

如何将带标题分隔线的多行字符串转换为指定结构的Python字典

实现思路

  • 第一步:预处理原始字符串,先按换行符\n切割为单行列表,过滤掉首尾无实际内容的空行、以及包裹字符串的三个双引号行。
  • 第二步:遍历行列表找到全由短横线组成的分隔线位置,分隔线的上一行直接作为title字段的值。如果确定分隔线固定出现在第二行,也可以直接跳过遍历步骤取第一行当标题,执行效率更高。
  • 第三步:分隔线的下一行是作者信息行,直接截取Author: 之后的内容作为author字段的值。
  • 第四步:作者行之后的所有内容,过滤掉开头的空行后,用\n重新拼接为完整字符串,即为body字段的值,天然保留原有的段落空行格式。

代码示例(Python)

def parse_content(raw_str):
    # 拆分行为列表,去除首尾空白和多余引号
    lines = [line.strip('\r') for line in raw_str.strip().strip('"').strip().split('\n')]
    # 定位短横线分隔线的索引位置
    split_idx = None
    for i, line in enumerate(lines):
        if all(c == '-' for c in line) and len(line) > 0:
            split_idx = i
            break
    # 提取各字段内容
    title = lines[split_idx - 1].strip()
    author = lines[split_idx + 1].strip().replace('Author: ', '', 1)
    # 处理正文:去除开头空行后拼接
    body_lines = lines[split_idx + 2:]
    while body_lines and body_lines[0].strip() == '':
        body_lines.pop(0)
    body = '\n'.join(body_lines)
    return {
        "title": title,
        "author": author,
        "body": body
    }

# 测试效果
raw_content = """
This is title
-------------------------
Author: Name of the author

Sentence 1.

Sentence 2.
"""
print(parse_content(raw_content))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:30:01