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

Python新手求助:如何将特定多行字符串转为两个有序列表?

把多行键值字符串拆分为键、值两个列表

先看你拿到的原始字符串格式:

raw_str = '''
"key0": "value0",
"key1": "value1",
"key2": "value2",
'''

作为Python新手,可以按以下简单步骤实现需求:

  • 第一步:清理字符串,拆分有效行
    先去掉字符串首尾的三个单引号,再按换行符拆分每行,过滤掉空行:
# 清理首尾的''',拆分每行
lines = raw_str.strip("'''").split('\n')
# 过滤掉空行,只保留有内容的行
valid_lines = [line.strip() for line in lines if line.strip()]
  • 第二步:遍历每行,拆分键和值
    每行的格式是"key": "value",,我们可以按: (冒号加空格)拆分,再处理掉值末尾的逗号,同时保留键的引号格式:
keys = []
values = []

for line in valid_lines:
    # 按冒号加空格拆分键和值部分
    key_part, value_part = line.split(': ')
    # 直接保留键的引号格式加入列表
    keys.append(key_part)
    # 处理值部分:去掉末尾的逗号,再还原引号格式
    cleaned_value = value_part.rstrip(',').strip('"')
    values.append(f'"{cleaned_value}"')
  • 第三步:验证结果
    执行print(keys[0])就会输出"key0",完全符合你的要求。

完整代码整合起来是这样:

raw_str = '''
"key0": "value0",
"key1": "value1",
"key2": "value2",
'''

lines = raw_str.strip("'''").split('\n')
valid_lines = [line.strip() for line in lines if line.strip()]

keys = []
values = []

for line in valid_lines:
    key_part, value_part = line.split(': ')
    keys.append(key_part)
    cleaned_value = value_part.rstrip(',').strip('"')
    values.append(f'"{cleaned_value}"')

# 验证输出
print(keys[0])  # 输出 "key0"
print(values[0])  # 输出 "value0"

如果你不需要值保留引号,把values.append(f'"{cleaned_value}"')改成values.append(cleaned_value)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:01:00