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

如何用Python提取格式为p+数字+s的元数据字段?

解决方案

核心思路

用正则表达式匹配符合p+数字+s(大小写不敏感)格式的键,从fcs_metadata中提取对应内容,单独处理'Markers analysed'项(它不属于简单的键映射,需要自定义筛选逻辑)。

代码实现

导入正则模块后,修改现有代码如下:

import re

metadata_crosswalk={
    'Date of Analysis': 'date',
    'Creator':'export user name',
    'Instrument':'cyt',
    'Number of Samples':'tot'
}

metadata = {}

# 处理常规键映射
for coscine_key,fcs_key in metadata_crosswalk.items():
    print("looking at metadata key (coscine)", coscine_key)
    print("looking to store fcs metadata key", fcs_key, "| value:", fcs_metadata[fcs_key])
    metadata[coscine_key] = fcs_metadata[fcs_key]

# 处理'Markers analysed'的特殊筛选逻辑
# 正则规则:以大小写p开头,后跟至少一个数字,以s结尾
pattern = re.compile(r'^[pP]\d+s$')
# 提取符合条件的键值对(若只需值的列表,可换成列表推导式)
markers_analysed = {key: fcs_metadata[key] for key in fcs_metadata if pattern.match(key)}
# 仅需值的话用这行:markers_analysed = [fcs_metadata[key] for key in fcs_metadata if pattern.match(key)]

metadata['Markers analysed'] = markers_analysed
print("Markers analysed extracted:", markers_analysed)

代码说明

  • re.compile(r'^[pP]\d+s$'):预编译正则表达式,^和$确保整个键完全匹配格式,避免误匹配包含该模式的长键。
  • 字典/列表推导式:快速筛选目标数据,可根据需求选择保留键值对或仅保留值。
  • 单独处理特殊项:因为'Markers analysed'不是一对一的键映射,所以脱离原循环单独提取后加入metadata字典。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 15:37:41