Как извлечь словарь из данных, полученных через websocket?

Как извлечь значения "BTCUSDT" и "51654.30" из данных сокета для их дальнейшего сравнения в потоке? В моем коде не видны переменные словаря для доступа к этим данным. Как лучше всего сравнить "p" с числом 51500 в данной ситуации?
  • 21 февраля 2024 г. 8:08
Ответы на вопрос 2
Для извлечения словаря из данных, полученных через websocket, можно использовать библиотеку для работы с JSON. В большинстве языков программирования есть специальные методы для преобразования JSON в словарь/объект.

Вот пример, как можно извлечь значения "BTCUSDT" и "51654.30" из данных сокета (предположим, что данные приходят в формате JSON):

```python
import json

data = {"symbol": "BTCUSDT", "price": "51654.30"}
# Преобразуем JSON в словарь
data_dict = json.loads(data)

symbol = data_dict["symbol"]
price = data_dict["price"]

print(symbol)  # Выведет "BTCUSDT"
print(price)   # Выведет "51654.30"
```

Чтобы сравнить значение "p" с числом 51500, достаточно написать условие:

```python
p = float(data_dict["price"])
if p > 51500:
    print("Цена выше 51500")
else:
    print("Цена ниже или равна 51500")
```

Таким образом, можно извлекать данные из словаря, полученного через websocket, и проводить с ними нужные операции, в том числе и сравнение значений.
- Декодировать json. 
- Прочитать значения из словаря и распечатать по условию.
import json

def on_message(ws, message):
    data = json.loads(message)
    s = data.get("s")
    p = data.get("p")

    if p:
        _p = float(p)

        if _p > 51500:
            print(f"Монета {s} больше 51500, текущая цена: {_p}")
        else:
            print(f"Монета {s} меньше или равна 51500, текущая цена: {_p}")
Похожие вопросы