Как получить стоимость акции с Yahoo Finance

Есть запрос

https://query2.finance.yahoo.com/v10/finance/quoteSummary/MAIL.ME?modules=price

Выдаёт вот такую портянку

{"quoteSummary":{"result":[{"price":{"maxAge":1,"preMarketChange":{},"preMarketPrice":{},"postMarketChange":{},"postMarketPrice":{},"regularMarketChangePercent":{"raw":-0.014701826,"fmt":"-1.47%"},"regularMarketChange":{"raw":-31.800049,"fmt":"-31.80"},"regularMarketTime":1597923042,"priceHint":{"raw":2,"fmt":"2","longFmt":"2"},"regularMarketPrice":{"raw":2131.2,"fmt":"2,131.20"},"regularMarketDayHigh":{"raw":2189.2,"fmt":"2,189.20"},"regularMarketDayLow":{"raw":2120.6,"fmt":"2,120.60"},"regularMarketVolume":{"raw":291916,"fmt":"291.92k","longFmt":"291,916.00"},"averageDailyVolume10Day":{},"averageDailyVolume3Month":{},"regularMarketPreviousClose":{"raw":2163.0,"fmt":"2,163.00"},"regularMarketSource":"FREE_REALTIME","regularMarketOpen":{"raw":2160.0,"fmt":"2,160.00"},"strikePrice":{},"openInterest":{},"exchange":"MCX","exchangeName":"MCX","exchangeDataDelayedBy":0,"marketState":"REGULAR","quoteType":"EQUITY","symbol":"MAIL.ME","underlyingSymbol":null,"shortName":"MAIL.RU GROUP LTD","longName":"Mail.ru Group Limited","currency":"RUB","quoteSourceName":"Free Realtime Quote","currencySymbol":"руб.","fromCurrency":null,"toCurrency":null,"lastMarket":null,"volume24Hr":{},"volumeAllCurrencies":{},"circulatingSupply":{},"marketCap":{}}}],"error":null}}

Из раздела "regularMarketPrice" мне нужно получить 2131.2

Нашел как это сделать вот тут https://habr.com/ru/post/505674/ , для этого используется json, а именно JSON.quoteSummary.result[0].price.regularMarketPrice.raw

Подскажите как прописать чтобы скрипт выдавал только цену


Ответы (2 шт):

Автор решения: MaxU

Пример:

import json    
from dpath.util import values as dp_vals

data = json.loads(json_str)

res = dp_vals(data, "/**/regularMarketPrice/raw")

результат:

In [55]: res
Out[55]: [2131.2]
→ Ссылка
Автор решения: Alexey R.

Код:

import requests
r = requests.get('https://query2.finance.yahoo.com/v10/finance/quoteSummary/MAIL.ME?modules=price')
print(r.json()['quoteSummary']['result'][0]['price']['regularMarketPrice']['raw'])

Результат:

2126.8

P.S. - Значение отличается от примера из-за изменившейся цены в ответе сервиса.

→ Ссылка