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

Python解析多行字符串提取内容生成指定结构字典列表的实现方法

实现思路

  • 你现有代码的核心问题是只定义了单个字典存储数据,没有使用列表存储多个动作条目,同时也没有收集每个add指令后对应的id序列
  • 正确的处理逻辑如下:
    1. 先将多行字符串按行拆分,过滤无内容的空行
    2. 遍历每一行内容,碰到以add开头的行时,就将上一个已经处理完成的动作条目存入结果列表,同时初始化新的动作条目,解析出动作类型、DL名称列表
    3. 非add开头的行都属于当前动作条目的id,直接追加到id列表即可
    4. 遍历结束后把最后一条处理中的动作条目存入结果列表

完整可运行代码

description = '''add DL3,DL1,DL5,DL6
id7
add DL2,DL3,DL4
id1
id2
id3
add DL3
id1
id2
id3
'''

action = []
current_item = None

for line in description.splitlines():
    line = line.strip()
    if not line:
        continue
    # 碰到add开头的行,开启新条目
    if line.startswith('add'):
        # 先把上一个条目存到结果里
        if current_item is not None:
            action.append(current_item)
        # 初始化新条目
        parts = line.split()
        dl_names = parts[1].split(',')
        current_item = {
            'process': parts[0],
            'dl_names': dl_names,
            'id': []
        }
    else:
        # 非add行是id,追加到当前条目
        current_item['id'].append(line)
# 把最后一个条目加进去
if current_item is not None:
    action.append(current_item)

print(action)

运行输出

[{'process': 'add', 'dl_names': ['DL3', 'DL1', 'DL5', 'DL6'], 'id': ['id7']}, {'process': 'add', 'dl_names': ['DL2', 'DL3', 'DL4'], 'id': ['id1', 'id2', 'id3']}, {'process': 'add', 'dl_names': ['DL3'], 'id': ['id1', 'id2', 'id3']}]

完全匹配你需要的输出格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:42:03