如何从POI JSON文本中遍历提取指定tag字段内容?
批量提取POI JSON中的指定tag字段
你的问题在于用字符串截取的方式只能匹配第一个符合条件的片段,而且依赖字段的固定顺序,一旦JSON结构变化就会失效,正确的做法是用JSON解析库结构化处理数据,步骤如下:
步骤说明
- 修复转义的JSON格式:原始字符串中的
"是HTML转义后的双引号,先替换为标准双引号,得到合法的JSON字符串。 - 解析JSON为Python对象:用Python内置的
json模块将字符串转成列表或字典,方便遍历操作。 - 遍历提取并筛选目标tag:遍历每个POI条目,提取
tag字段,筛选出你需要的指定值。
代码示例
import json # 假设你的原始数据存储在result变量中 # 先处理HTML转义的双引号,转为标准JSON格式 clean_json = result.replace('"', '"') # 解析JSON为Python列表(如果是单个POI则是字典) poi_list = json.loads(clean_json) # 定义你需要提取的目标tag值 target_tags = {"房地产;住宅", "教育培训;幼儿园"} mySubString = [] # 遍历所有POI条目 for poi in poi_list: tag = poi.get("tag") # 检查当前tag是否是目标值之一 if tag in target_tags: mySubString.append(tag) # 输出结果 print(mySubString)
额外说明
- 如果你的JSON数据是嵌套结构(比如POI列表在某个字段下,例如
{"data": [POI1, POI2]}),只需要调整遍历路径:for poi in poi_list["data"]。 - 这种方法不依赖字段顺序,即使
tel字段在tag前面,或者POI条目有其他额外字段,都能正确提取tag值,比字符串截取可靠得多。
内容的提问来源于stack exchange,提问作者nhd
相关产品推荐
相关产品推荐

