【发布时间】:2020-05-28 22:44:14
【问题描述】:
更新: 经过数小时的反复试验。
我能够将我的 google Places API json 称为返回数据并将其缩减为我可以解析的列表。这很可能不是最好的方法。我知道必须直接从第一个json数据返回中获取数据??????
这是我从 google api json 数据中获取回报的代码。我采用它并减少字段并将我想要的字段纳入候选名单。)
shortlist = [] # 列表
结果是来自 google api 调用的 json 数据。
用于places_result['results']:
#define 我的位置 ID
my_place_id = place['place_id']
#define the fields we want sent back to us
my_fields = ['name', 'formatted_phone_number', 'type']
#make a request for the details drop some fields
place_details = gmaps.place(place_id = my_place_id, fields = my_fields)
#save 结果在列表中的循环之外 shortlist.append(place_details) # 是一个列表
候选名单数据示例:
入围数据:只需 2 个列表项即可查看格式:
{'html_attributions': [], 'result': {'formatted_phone_number': '(760) 864-9900', 'name': 'Palm Greens Cafe', 'types': ['cafe', 'restaurant ', '食物', 'point_of_interest', '商店', '机构']}, '状态': 'OK'} {'html_attributions': [], 'result': {'formatted_phone_number': '(760) 459-4555', 'name': 'Townie Bagels |面包店 |咖啡馆','类型':['面包店','grocery_or_supermarket','咖啡馆','餐厅','食物','point_of_interest','商店','建立']},'状态':'OK'}
我可以从候选名单中获取我在这个循环中需要的字段
####作品短结果列表我 = 0 对于候选名单中的 x: 尝试: find_name = 候选名单[i]['result']['name'] 打印(查找名称) i = i+1
except(KeyError):
print('name error')
i= i+1
continue
#
for 循环的输出:
棕榈绿咖啡厅 小镇百吉饼 |面包店 |咖啡店 星巴克储备 麦当劳 茉莉咖啡厅 科菲南棕榈泉 星巴克 MidMod 咖啡厅 格雷咖啡馆和艺术画廊 Vinny's 意大利冰、冷冻蛋奶冻 + 冰淇淋、冰淇淋等 工作室咖啡厅 碎蛋黄咖啡馆棕榈泉 里斯特雷托 半岛糕点棕榈泉 卡米洛特国际咖啡厅 里克餐厅和面包店 星巴克 瑞士甜甜圈 星巴克 星巴克
我花了 2 天的时间终于拿到了这个票价。如果有更简化的方式来做这件事,只是想要建议?
在这篇文章之前的回复中,我无法获得建议的示例。
感谢您的帮助。 比尔.
【问题讨论】:
-
你能用你正在使用的代码更新这个吗?具体你有什么问题吗?
标签: python json google-cloud-platform google-places-api