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

如何在Python中使用正则提取JSON字符串的指定字段内容

问题解决方案

方案1:优先使用JSON解析(更稳定,推荐)

你给出的字符串是标准JSON格式,直接用编程语言内置的JSON解析工具提取数据,比正则更不容易出错,Python示例代码如下:

import json

resp = '{"e":"kline","E":1636631940480,"s":"EPSUSDT","k":{"t":1636631880000,"T":1636631939999,"s":"EPSUSDT","i":"1m","f":15980499,"L":15980734,"o":"0.56630000","c":"0.57200000","h":"0.57300000","l":"0.56630000","v":"280740.00000000","n":236,"x":true,"q":"159924.80310000","V":"150693.00000000","Q":"85802.85780000","B":"0"}}'
data = json.loads(resp)
# 直接获取c对应的数值
c_value = data['k']['c']
print(c_value) # 输出 0.57200000
# 如果需要获取"c":"0.57200000"片段
c_fragment = f'"c":"{c_value}"'
print(c_fragment) # 输出 "c":"0.57200000"

方案2:正则匹配方案

你原来的正则r'^\"c\",$'存在以下问题:

  • ^和$分别表示匹配字符串开头和结尾,意味着只有当整个字符串完全等于"c",时才会匹配,显然不符合你的场景
  • 没有匹配c对应的数值部分

匹配"c":"0.57200000"完整片段的正则

import re
resp = '{"e":"kline","E":1636631940480,"s":"EPSUSDT","k":{"t":1636631880000,"T":1636631939999,"s":"EPSUSDT","i":"1m","f":15980499,"L":15980734,"o":"0.56630000","c":"0.57200000","h":"0.57300000","l":"0.56630000","v":"280740.00000000","n":236,"x":true,"q":"159924.80310000","V":"150693.00000000","Q":"85802.85780000","B":"0"}}'
match_res = re.search(r'"c":"[\d.]+?"', resp)
if match_res:
    print(match_res.group()) # 输出 "c":"0.57200000"

直接提取c对应的数值的正则

用分组捕获数值部分即可:

match_res = re.search(r'"c":"([\d.]+?)"', resp)
if match_res:
    c_value = match_res.group(1)
    print(c_value) # 输出 0.57200000

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:54:07