Подскажите, как получить цену из списка
Подскажите пожалуйста, как получить цену открытия, закрытия, итд. Не судите строго, только учусь. Биржа MEXC Тикер достать получилось.
import asyncio
import json
import websockets
async def mrlsv_ws():
url = 'wss://wbs.mexc.com/ws'
async with websockets.connect(url) as ws:
print('Connected')
subs = dict(
method = 'SUBSCRIPTION',
params = [
'[email protected]@BTCUSDT@Min30'
]
)
await ws.send(json.dumps(subs))
async for msg in ws:
msg = json.loads(msg)
symbol = msg.get('s')
print(symbol)
if __name__ == '__main__':
asyncio.run(mrlsv_ws())
response:
{
'd': {
'e': '[email protected]',
'k': {
't': 1732906800,
'o': '97176',
'c': '97047.99',
'h': '97190.48',
'l': '96879.53',
'v': '75.0161855',
'a': '7276917.78',
'T': 1732908600,
'i': 'Min30'
}
},
'c': '[email protected]@BTCUSDT@Min30',
't': 1732908001686,
's': 'BTCUSDT'
}
Как получить d->k->o
Ответы (1 шт):
Автор решения: Alexey Trukhanov
→ Ссылка
Интересный какой курс :)
У Вас вложенные словари. Вам надо несколько раз вызвать метод .get
или последовательно обратится к словарям по ключам. Как-то так:
price_open = msg.get("d").get('k').get('o')
price_close = msg.get("d").get('k').get('c')
и так далее, меняете ключ в последнем вызове метода .get
и получаете нужную цену.
Или так, через ключи:
price_open = msg['d']['k']['o']
price_close = msg['d']['k']['c']
Вторая запись короче, разница между ними, что если .get
не найдет ключ, то вернет None
. Во втором же случае, если ключ не найдется - будет исключение.