如何用Python正则表达式从JSON中提取volume字段值?
解决方法
优先方案:正确解析完整JSON
通过requests获取JSON数据后,直接用内置方法解析成Python字典,直接通过键名提取值是最可靠的方式,无需处理字符串片段:
import requests # 示例请求代码 response = requests.get("你的目标API地址") data = response.json() # 自动解析为字典结构 # 根据JSON实际层级提取volume值,示例如下: # 若volume在顶层 if "volume" in data: print("Volume值:", data["volume"]) # 若volume在quote子字典中 elif "quote" in data and "volume" in data["quote"]: print("Volume值:", data["quote"]["volume"])
临时方案:从现有字符串片段提取
如果只能处理你提供的字符串列表,可修正正则表达式匹配目标内容:
import re # 你的字符串列表 str_fragments = ['Average volume</span><div c', 'Average volume</span><span ', '10000","volume":"13458635.0', 'ernight_volume":"0.000000",', 'average_volume_2_weeks":"14', 'average_volume":"14172441.6', 'average_volume_30_days":"13', 'trading volume occurs durin'] # 匹配"volume":"数值"的正则("是HTML转义的双引号) pattern = re.compile(r'"volume":"([\d.]+)') for fragment in str_fragments: match_result = pattern.search(fragment) if match_result: print("提取到Volume值:", match_result.group(1))
正则错误说明
你之前的正则存在两个问题:
r'^'volume^'':语法错误,^是行首锚定符,且引号嵌套逻辑混乱r'\'volume\'':转义错误,且未匹配到JSON中带双引号的"volume"格式,也未捕获对应数值
内容的提问来源于stack exchange,提问作者Low tier Linux user Chris
相关产品推荐
相关产品推荐

