Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何在python中查找字符串模式_Regex_String_Python 2.7_Search - Fatal编程技术网

Regex 如何在python中查找字符串模式

Regex 如何在python中查找字符串模式,regex,string,python-2.7,search,Regex,String,Python 2.7,Search,我有一个大字符串(称为largester),它有以下模式的多个实例: {"location": {"latitude": 34.04481184664412, "longitude": -118.30783339686604}, 在每个实例中,纬度和经度的值可能不同,我如何通过搜索模式从这个大字符串中提取这些纬度和经度数据。这是一个LargSTR的例子 , "hovercard_id": "1Lm6ExY6B8v9E6B09j5h6w", "resource_type": "business"

我有一个大字符串(称为largester),它有以下模式的多个实例:

{"location": {"latitude": 34.04481184664412, "longitude": -118.30783339686604},
在每个实例中,纬度和经度的值可能不同,我如何通过搜索模式从这个大字符串中提取这些纬度和经度数据。这是一个LargSTR的例子

, "hovercard_id": "1Lm6ExY6B8v9E6B09j5h6w", "resource_type": "business", "icon": {"regular_uri": "https://media2.fl.yelpcdn.com/mapmarkers/yelp_map_range/20160801/21/30.png", "scaled_size": [48, 320], "anchor_offset": [12, 32], "name": "business", "active_origin": [24, 0], "active_uri": "https://media2.fl.yelpcdn.com/mapmarkers/yelp_map_range/20160801/21/30.png", "regular_origin": [0, 0], "size": [24, 32]}}, "22": {"url": "/biz/la-barca-restaurant-los-angeles", "location": {"latitude": 34.0339201576781, "longitude": -118.29148504989}, "key": 22, "hovercard_id": "B68Kl37vf9qF7GImxhELkQ", "resource_type": "business", "icon": {"regular_uri": "https://media2.fl.yelpcdn.com/mapmarkers/yelp_map_range/20160801/21/30.png", "scaled_size": [48, 320], "anchor_offset": [12, 32], "name": "business", "active_origin": [24, 32], "active_uri": "https://media2.fl.yelpcdn.com/mapmarkers/yelp_map_range/20160801/21/30.png", "regular_origin": [0, 32], "size": [24, 32]}}, "23": {"url": "/biz/el-migueleno-restaurant-los-angeles", "location": {"latitude": 34.0350506, "longitude": -118.2915704}, "key": 23, "hovercard_id": "y3815rRI1BP66oq09m6TjQ", "resource_type": "business", "icon": {"regular_uri": "https://media2.fl.yelpcdn.com/mapmarkers/yelp_map_range/20160801/21/30.png", "scaled_size": [48, 320], "anchor_offset": [12, 32], "name": "business", "active_origin": [24, 64], "active_uri": "https://media2.fl.yelpcdn.com/mapmarkers/yelp_map_range/20160801/21/30.png", "regular_origin": [0, 64], "size": [24, 32]}}, "24": {"url": "/biz/house-of-curry-los-angeles-4", "location": {"latitude": 34.040289, "longitude": -118.3086312}, "key": 24, "hovercard_id": "SoisYg5oSRA5eiBl0wPALg", "resource_type": "business", "icon": {"regular_uri": "https://media2.fl.yelpcdn.com/mapmarkers/yelp_map_range/20160801/21/30.png", "scaled_size": [48, 320], "anchor_offset": [12, 32], "name": "business", "active_origin": [24, 96], "active_uri": "https://media2.fl.yelpcdn.com/mapmarkers/yelp_map_range/20160801/21/30.png", "regular_origin": [0, 96], "size": [24, 32]}}, "25": {"url": "/biz/ebaes-los-angeles", "location": {"latitude": 34.0343956, "longitude": -118.2836649}, "key": 25, "hovercard_id": "Tnc0HTOhLEWEXAPBjH5u7w", "resource_type": "business", "icon": {"regular_uri": "https://media2.fl.yelpcdn.com/mapmarkers/yelp_map_range/20160801/21/30.png", "scaled_size": [48, 320], "anchor_offset": [12, 32], "name": "business", "active_origin": [24, 128], "active_uri": "https://media2.fl.yelpcdn.com/mapmarkers/yelp_map_range/20160801/21/30.png", "regular_origin": [0, 128], "size": [24, 32]}}, "26": {"url": "/biz/belizean-fish-market-los-angeles-2", "location": {"latitude": 34.0314363, "longitude": -118.3087631}, "key": 26, "hovercard_id": "NnO4zEpZt3MvzYFU_MrXaQ", "resource_type": "business", "icon": {"regular_uri": "https://media2.fl.yelpcdn.com/mapmarkers/yelp_map_range/20160801/21/30.png", "scaled_size": [48, 320], "anchor_offset": [12, 32], "name": "business", "active_origin": [24, 160], "active_uri": "https://media2.fl.yelpcdn.com/mapmarkers/yelp_map_range/20160801/21/30.png", "regular_origin": [0, 160], "size": [24, 32]}}, "27": {"url": "/biz/omars-hot-dog-stand-los-angeles", "location": {"latitude": 34.0286688, "longitude": -118.2915386}, "key": 27, "hovercard_id": "9hcR6H1PePDMB_JziH7VSA", "resource_type": "business", "icon": {"regular_uri": "https://media2.fl.yelpcdn.com/mapmarkers/yelp_map_range/20160801/21/30.png", "scaled_size": [48, 320], "anchor_offset": [12, 32], "name": "business", "active_origin": [24, 192], "active_uri": "https://media2.fl.yelpcdn.com/mapmarkers/yelp_map_range/20160801/21/30.png", "regular_origin": [0, 192], "size": [24, 32]}}, "28": {"url": "/biz/bacaro-la-los-angeles", "location": {"latitude": 34.034478, "longitude": -118.28342}, "key": 28, "hovercard_id": "0UCg5MwkhM4Qj1GnFdXBFA", "resource_type": "business", "icon": {"regular_uri": "https://media2.fl.yelpcdn.com/mapmarkers/yelp_map_range/20160801/21/30.png", "scaled_size": [48, 320], "anchor_offset": [12, 32], "name": "business", "active_origin": [24, 224], "active_uri": "https://media2.fl.yelpcdn.com/mapmarkers/yelp_map_range/20160801/21/30.png", "regular_origin": [0, 224], "size": [24, 32]}}, "29": {"url": "/biz/teds-burger-3-los-angeles", "location": {"latitude": 34.0258372, "longitude": -118.3005593}, "key": 29, "hovercard_id": "eETHUFJ7cCC8mrQGUiJMpQ", "resource_type": "business", "icon": {"regular_uri": "https://media2.fl.yelpcdn.com/mapmarkers/yelp_map_range/20160801/21/30.png", "scaled_size": [48, 320], "anchor_offset": [12, 32], "name": "business", "active_origin": [24, 256], "active_uri": "https://media2.fl.yelpcdn.com/mapmarkers/yelp_map_range/20160801/21/30.png", "regular_origin": [0, 256], "size": [24, 32]}}, "30": {"url": "/biz/study-hall-los-angeles-3", "location": {"latitude": 34.028543, "longitude": -118.284365}, "key": 30, "hovercard_id": "nrgJNUjt0vNF7TrhmWMtiw", "resource_type": "business", "icon": {"regular_uri": "https://media2.fl.yelpcdn.com/mapmarkers/yelp_map_range/20160801/21/30.png", "scaled_size": [48, 320], "anchor_offset": [12, 32], "name": "business", "active_origin": [24, 288], "active_uri": "https://media2.fl.yelpcdn.com/mapmarkers/yelp_map_range/20160801/21/30.png", "regular_origin": [0, 288], "size": [24, 32]}}}, "top_biz_bounds": null, "hoods": [{"highlighted": false, "text": {"location": {"latitude": 34.04481184664412, "longitude": -118.30783339686604}, 

以下代码将为您提供所有
位置

import re
[a.start() for a in re.finditer('"location"', mystr)]
输出将是:
[x1 x2 x3…xn]
其中
xi
mystr
位置“
的第一个字符

然后,对于返回的每个值,可以获得第一个
{
}
之间的数据

注意,该数据看起来像Yelp业务数据集。我以前使用过这些数据,我记得这里有一些json文件,您可以直接访问每个企业的位置信息,而无需字符串搜索

编辑Yelp业务日期: 就我所记得的,你正在看的是一个字典列表

首先将整个文件读入一个列表。每个业务都有一个元素

 for busn in list:
      busn['location'] -> this will give you the location dictionary
      busn['location']['lattitude'] will give you lattitude of the business.
您可能需要检查企业是否有位置信息。您可以按如下方式进行操作:

 if 'location' in busn: 
        busn['location']

这不是json文件吗?如果您共享整个文件或一个适当的文件片段,则更容易从lxml.html和请求中分辨出。不,这是一个文本文件片段。我只需要能够从中提取这些片段:{“位置”:{“纬度”:a,“经度”:b},其中a和b可能是不同的浮点数。假设您确实从大字符串中提取了这些值,那么您将如何将它们组织成有用的内容,或者如何知道每个纬度和经度值属于哪些元素?将字符串解析到字典中或将其加载到json对象将使其更易于管理获取这个子字符串,{“位置”:{“纬度”:a,“经度”:b},很容易提取不同的值并存储它们。我只需要一个简洁的方法来提取这些子字符串谢谢,你能告诉我如何获取和使用Json文件吗?是的,这是yelp的数据。编辑了答案。请检查