0

我正在使用 requests v1.2 查询 Uber API 端点。(https://api.uber.com/v1.2/requests/estimate

我看到一些奇怪的行为,返回的 UberPool 游乐设施的票价比 UberX 游乐设施贵。以我个人的经验,在应用程序中总是相反......我已经检查并仔细检查了我的产品 ID 等。

下面只是一个示例查询,它返回比 UberX 更昂贵的 UberPool 估计值。据我所知,长途旅行似乎总是会发生这种情况(这仍然与我在 Uber 应用程序中看到的比 UberX 更便宜的 UberPool 不符):

水池

{'fare': {'breakdown': [{'name': 'Promotion',
                         'type': 'promotion',
                         'value': -4.0},
                        {'name': 'Base Fare',
                         'type': 'base_fare',
                         'value': 64.01}],
          'currency_code': 'USD',
          'display': '$60.01',
          'expires_at': 1543621842,
          'fare_id': '3383930c3076db034e70d03623fa2938e92276e5c47d668f8092c0286c298928',
          'value': 60.01},
 'pickup_estimate': 5,
 'trip': {'distance_estimate': 29.76,
          'distance_unit': 'mile',
          'duration_estimate': 3300}}

这是使用 v1.2 端点和查询数据参数生成的:

data = '{\n       "product_id": "26546650-e557-4a7b-86e7-6a3942445247",\n      "start_latitude": "37.9779776",\n       "start_longitude": "-122.0310733",\n       "end_latitude": "37.7941378",\n       "end_longitude": "-122.4077914"\n     }'

优步

{'fare': {'breakdown': [{'name': 'Promotion',
                         'type': 'promotion',
                         'value': -4.0},
                        {'name': 'Base Fare',
                         'type': 'base_fare',
                         'value': 47.36}],
          'currency_code': 'USD',
          'display': '$43.36',
          'expires_at': 1543621878,
          'fare_id': '24098c789d23e5e4c961e268963269ea3313654acc41555b73ef232e6b4219b9',
          'value': 43.36},
 'pickup_estimate': 4,
 'trip': {'distance_estimate': 29.76,
          'distance_unit': 'mile',
          'duration_estimate': 3300}}

除了 product_id 是 UberX 而不是 UberPool 之外,它的生成方式相同:

data = '{\n       "product_id": "a1111c8c-c720-46c3-8534-2fcdd730040d",\n      "start_latitude": "37.9779776",\n       "start_longitude": "-122.0310733",\n       "end_latitude": "37.7941378",\n       "end_longitude": "-122.4077914"\n     }'
4

1 回答 1

0

我相信我已经解决了自己的问题,并想分享答案: UberPool 请求有一个隐含的参数“seat_count = 2”,该参数在我上面称为“数据”的字典中传递。当我在字典中添加一个明确的参数“seat_count = 1”时,价格变得比预期的要好,UberPool 比 UberX 便宜!

需要明确的是——这仍然是 API 的奇怪行为, Uber 员工已经注意到了这一点。UberPool 永远不应该比 UberX 贵,包括如果你要求两个座位 - 从产品的角度来看这是没有意义的,因为如果直接 UberX 更便宜更快,为什么有人会为自己和朋友调用迂回的 UberPool ?

于 2018-12-10T12:40:31.773 回答