使用Google Places API客户端库时出现SearchTextRequest字段错误求指引
解决Google Places API客户端库
SearchTextRequest字段错误问题 问题原因
你遇到的Unknown field for SearchTextRequest: included_fields错误,是因为客户端库的请求参数和HTTP接口的字段控制逻辑对应方式不同——客户端库中不使用fields参数,而是需要通过field_mask来指定返回字段。
修正后的代码示例
async def sample_get_place(): # 创建客户端 client = places_v1.PlacesAsyncClient(client_options={'api_key':api_key.api_key}) # 初始化请求参数 request = places_v1.SearchTextRequest( text_query="restaurants in New York", # 用field_mask替代原fields参数,传入字符串格式的字段路径 field_mask="places.display_name" ) # 发起请求 response = await client.search_text(request=request)
多字段指定方式
如果需要同时获取多个字段,直接用逗号分隔字段路径即可:
request = places_v1.SearchTextRequest( text_query="restaurants in New York", field_mask="places.display_name,places.formatted_address,places.rating" )
补充说明
Google Cloud的gRPC客户端库(包括Places v1客户端)统一使用field_mask参数控制返回字段,和HTTP接口的fieldmask功能一致,但参数名和传入格式有区别:
- HTTP接口用
fieldmask参数,值为逗号分隔的字符串 - 客户端库用
field_mask参数,支持直接传入逗号分隔的字符串,也可以构建google.protobuf.field_mask_pb2.FieldMask对象传入
内容的提问来源于stack exchange,提问作者Fuad Ak
相关产品推荐
相关产品推荐

