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

Python解析JSON格式字符串提取斜杠后内容的问题

正确解析目标字符串并提取斜杠后内容的方案

嘿,这个问题其实有好几种解决办法,其中最稳妥的是用Python内置的json模块来处理——毕竟你的输入字符串本身就是标准的JSON数组格式,完全不用手动去折腾引号和逗号,能避开很多容易踩的小坑!

最优解:用json模块解析

直接把字符串转成Python列表,再提取每个元素的后半部分,代码简洁又可靠:

import json

val = '["10249/54","10249/147","10249/187","10249/252","10249/336"]'
# 解析JSON字符串为Python列表
parsed_items = json.loads(val)
# 提取每个元素斜杠后的内容
target_list = [item.split('/')[1] for item in parsed_items]

print(target_list)  # 输出: ['54', '147', '187', '252', '336']

改进你原来的手动处理方案

如果你不想用json模块,也可以修正你之前的代码:
你最初的列表推导式出错,是因为val[1:-1].split(',')得到的每个元素是带双引号的(比如'"10249/54"'),直接截取会把末尾的引号也带上。只要先去掉每个元素的前后引号,再处理就没问题了:

改进版列表推导式

val = '["10249/54","10249/147","10249/187","10249/252","10249/336"]'
target_list = [a.strip('"').split('/')[1] for a in val[1:-1].split(',')]

这里用strip('"')比手动a[1:-1]更灵活,能处理可能存在的空格(不过你的输入里没有)。

完善你的循环方案

你之前的循环思路是对的,只要把最后一步补全就行:

val = '["10249/54","10249/147","10249/187","10249/252","10249/336"]'
c = []
for a in val[1:-1].split(','):
    tmp = a.strip('"')  # 去掉前后双引号
    c.append(tmp.split('/')[1])  # 分割后取第二部分

print(c)  # 输出正确结果

小提醒

手动切割字符串虽然能解决当前问题,但如果以后你的输入字符串出现复杂情况(比如元素里有转义的双引号、空格等),手动处理很容易出错。所以优先推荐用json模块的方案,兼容性和健壮性都更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:33:10