从json响应中获取特定文本后面的数字

2024-06-02 08:37:32 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,我试图从与关键字numHits的字段值对应的字符串中提取数字1631。关键字是固定的。我怎么用正则表达式呢?你知道吗

{'statusCode': 200,
 'numHits': 1631,
 'hits': [{'lastSeen': '2019-09-25',
   'imageHeight': 360,

Tags: 字符串数字关键字段值hitsstatuscodelastseenimageheight
3条回答

一个完整的例子是:

import requests

response = requests.get('your_url')
your_data = response.json()
print(your_data['numHits'])

如果仍要使用regex,这里有一个仅用于正数值:

import re

json_str = "{'statusCode': 200, 'numHits': 1631, 'hits': [{'lastSeen': '2019-09-25', 'imageHeight': 360,..."

r = re.compile(r"'numHits':\s+(\d+)")

res = r.search(json_str) # <_sre.SRE_Match object; span=(20, 35), match="'numHits': 1631">
res.group(1) # '1631'


# be careful with non maching strings
res = r.search("asd") # None
res.group(1) # -> AttributeError: 'NoneType' object has no attribute 'group'

假设问题中的JSON是错误的复制/粘贴,而实际数据是有效的JSON。。。你知道吗

如果你的答案是一本简单的词典,请使用:

print(json_data['numHits'])

如果这是来自http响应的字符串,您可以使用:

json_data = response.json()  
print(json_data['numHits'])

如果不是来自http响应的字符串,请使用:

import json  
json_data = json.loads(variable_containing_data)  
print(json_data['numHits'])

相关问题 更多 >