Рыночные идентификаторы для событий не могут быть найдены через их идентификаторы событий - Betfair - PullRequest
0 голосов
/ 29 марта 2019

У меня есть события (например, Ричмонд против Коллингвуда) и их соответствующие идентификаторы для данного соревнования, в моем случае AFL, однако при попытке получить идентификаторы рынка, связанные с этими событиями, API дает только идентификатор рынка конкуренции в видеответ.Как изменить мой запрос, чтобы эта информация также была указана?

Используемая мной библиотека Python: https://github.com/liampauling/betfair

Ниже приведен код, который я использую для 1. полученияидентификатор соревнования для afl, 2. получить идентификаторы событий и имена для всех матчей в этом соревновании, и 3. получить идентификаторы рынка для событий.

В [1]:

competition_id = client.betting.list_competitions(filter=filters.market_filter(event_ids=event_ids))[-1].competition.id

Выход [1]: 11897406

Вход [2]:

events = client.betting.list_events(
    filter=filters.market_filter(
        competition_ids=[competition_id]))

for event_result in events:
    print(event_result.event.name, event_result.event.id)

Выход [2]:

AFL 28159788
Brownlow Medal 2019 28927640
Hawthorn v Western Bulldogs 29182265
North Melbourne v Brisbane 29182264
Gold Coast v Fremantle 29182266
Port Adelaide v Carlton 29182261
Favourites To Win 29203764
Geelong v Melbourne 29182263
West Coast v GWS 29182262
Sydney v Adelaide 29182257
Women's AFL 28113600
Essendon v St Kilda 29182258
AFL Round 2 Multis 29195364
Adelaide (W) v Carlton (W) 29199747

Вход [3]:

AFL_market_catalogue = client.betting.list_market_catalogue(filter=filters.market_filter(event_ids=event_ids),
                                                           market_projection=['EVENT', 'COMPETITION'])[0]

Out [3]:

{"marketId":"1.148783689","marketName":"Premiers 2019","totalMatched":293415.056733,"competition":{"id":"11897406","name":"AFL"},"event":{"id":"28159788","name":"AFL","countryCode":"AU","timezone":"GMT","openDate":"2099-01-01T00:00:00.000Z"}}

Как показано в выходных данных 3, возвращается только идентификатор MarketID - премьеры 2019 года, когда мне нужен Hawthorn v Western Bulldogs, Северный Мельбурн - Брисбен и т. Д.

1 Ответ

0 голосов
/ 04 апреля 2019

Попробуйте установить max_results=n в качестве параметра list_market_catalogue().

В документации (https://developers.betfair.com/display/1smk3cen4v3lu3yomq5qye0ni/listMarketCatalogue) сказано, что для listMarketCatalogue() требуется целое число maxResults. И наоборот, демонстрационный инструмент API Sports (https://docs.developer.betfair.com/visualisers/api-ng-sports-operations/) по умолчанию имеет значение Max Results, равное 1.) Верхний результат is ' Premiers 2019 ', а остальные игнорируются.

[Мой Python немного ржавый, поэтому я также собираюсь спросить, должен ли он быть [0] после закрывающей скобки?]

В настоящее время доступно 14 рынков для каждой из игр AFL, которые я вижу на данный момент, поэтому, если вы хотите ограничить результаты только основным выигрышным командным рынком, вам нужно включить MATCH_ODDS в market_types_codes фильтра.

...