首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在python中找到字符串模式

如何在python中找到字符串模式
EN

Stack Overflow用户
提问于 2017-03-15 23:54:15
回答 1查看 138关注 0票数 0

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

代码语言:javascript
运行
复制
{"location": {"latitude": 34.04481184664412, "longitude": -118.30783339686604},

在每个实例中,纬度和经度的值可能是不同的,如何通过搜索模式从这个大字符串中提取这些纬度和经度数据。下面是LargSTR的一个示例

代码语言:javascript
运行
复制
/*
* 提示:该行代码过长,系统自动注释不进行高亮。一键复制会移除系统注释 
* , "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},
*/
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-16 00:11:10

下面的代码将为您提供所有locations

代码语言:javascript
运行
复制
import re
[a.start() for a in re.finditer('"location"', mystr)]

输出将是:[x1 x2 x3 ... xn],其中ximystr"location"的第一个字符。

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

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

据我所知,编辑Yelp :据我所知,您正在查看的列表是一个字典列表。

您将首先将整个文件读入列表中。每个企业都有一个要素。

代码语言:javascript
运行
复制
 for busn in list:
      busn['location'] -> this will give you the location dictionary
      busn['location']['lattitude'] will give you lattitude of the business.

您可能需要检查业务是否有位置信息。你可以这样做:

代码语言:javascript
运行
复制
 if 'location' in busn: 
        busn['location']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42822908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档