在Python3中读取Google API返回的JSON文件并转为可操作对象
在Python中解析Google Transit API返回的JSON为可操作对象
嘿,这个需求其实挺常见的,用Python内置的json模块就能轻松搞定,完全不需要复杂的第三方工具。我分两种实用场景给你具体的实现方案:
场景1:直接从API请求获取并解析
如果是直接调用Google Transit API拿数据,我推荐用requests库来发送请求,它能帮你省不少处理响应的麻烦:
首先先确保装上requests:
pip install requests
然后写代码就行:
import requests # 替换成你的合法API请求链接,记得带上有效的API密钥 api_url = "https://maps.googleapis.com/maps/api/transit/...?key=YOUR_API_KEY" # 发送GET请求 response = requests.get(api_url) # 先检查请求是否成功 if response.status_code == 200: # 直接把响应解析成Python字典(这就是你要的可操作对象) transit_data = response.json() # 举几个操作例子: # 获取第一个地理编码航点的place_id first_place_id = transit_data['geocoded_waypoints'][0]['place_id'] print(f"第一个航点的Place ID: {first_place_id}") # 遍历所有地理编码航点,打印状态和类型 for idx, waypoint in enumerate(transit_data['geocoded_waypoints']): print(f"航点{idx+1} - 状态: {waypoint['geocoder_status']}, 类型: {waypoint['types']}") else: print(f"请求失败啦,状态码: {response.status_code}")
场景2:读取本地保存的JSON文件
如果你的JSON已经存在本地文件里,用json.load()就能直接读取解析:
import json # 替换成你的JSON文件路径 json_file_path = "transit_response.json" # 用with语句打开文件,自动处理关闭 with open(json_file_path, 'r', encoding='utf-8') as f: transit_data = json.load(f) # 同样可以自由操作这个对象 if 'routes' in transit_data: print(f"返回的路线总数: {len(transit_data['routes'])}")
核心小知识点
response.json():requests库封装的快捷方法,直接把API返回的JSON字符串转换成Python的字典/列表嵌套结构json.load(file_object):专门用来从文件中读取并解析JSON- 如果你的数据是纯字符串形式(比如你贴的示例),可以用
json.loads(json_string)来转换
解析后的transit_data就是普通的Python对象,你可以像操作字典、列表那样,用键名、索引来访问内部数据,做遍历、筛选、提取等任何你需要的操作。
内容的提问来源于stack exchange,提问作者Sam Germain
相关产品推荐
相关产品推荐

