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

如何解析字典内文本,将带冒号内容设为key,其余内容为对应value

解决方法

核心思路是放弃用逗号/换行符拆分的方案,直接根据key以冒号结尾的特征做匹配拆分,完全不会受value内部逗号的影响。

实现代码

import re

# 取出原始文本
raw_text = x[0][0]

# 匹配所有key:特征为字母开头,由字母、空格、连字符组成,以冒号结尾
keys = re.findall(r'[A-Za-z][\w\s-]+:', raw_text)
# 按匹配到的key拆分原始文本,得到每个key对应的原始value片段
value_segments = re.split(r'[A-Za-z][\w\s-]+:', raw_text)[1:]

# 组装符合要求的结果字典
result = {}
for key, val_seg in zip(keys, value_segments):
    # 自动去除value前后的所有空白字符(包括换行、多余空格、非断空格\xa0)
    cleaned_val = val_seg.strip()
    # 按需求将value存为列表格式,空值保留空列表
    result[key] = [cleaned_val] if cleaned_val else []

输出效果

打印result即可得到你需要的结构:

{
    'Name in home country:': ['Kylian Mbappé Lottin'],
    'Date of birth:': ['Dec 20, 1998'],
    'Place of birth:': ['Paris'],
    'Age:': ['22'],
    'Height:': ['1,78 m'],
    'Citizenship:': ['France'],
    'Position:': ['attack - Centre-Forward'],
    'Foot:': ['right'],
    'Player agent:': ['Relatives'],
    'Current club:': ['Paris Saint-Germain'],
    'Joined:': ['Jul 1, 2018'],
    'Contract expires:': ['Jun 30, 2022'],
    'Outfitter:': ['Nike'],
    'Social-Media:': []
}

内容的提问来源于stack exchange,提问作者me.limes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:27:03