Удаление кавычек из вывода re.findall - PullRequest
0 голосов
/ 10 января 2020

Я пытаюсь удалить кавычки из моего вывода re.findall, используя Python 3. Я пробовал предложения с разных форумов, но это не сработало, как ожидалось, наконец, решил спросить здесь сам.

Мой код:

import requests
from bs4 import BeautifulSoup
import re
import time

price = [];

while True:
    url = "https://api.binance.com/api/v3/ticker/price?symbol=ETHUSDT"
    page = requests.get(url)
    soup = BeautifulSoup(page.content, 'html.parser')
    data = soup.prettify()
    for p in data:
        match = re.findall('\d*\.?\d+',data)
        print("ETH/USDT",match)
        price.append(match)
        break

Вывод match дает: ['143.19000000']. Я бы хотел, чтобы это было похоже на [143.1900000], но я не могу понять, как это сделать.

Еще одна проблема, с которой я сталкиваюсь, заключается в том, что в список цен добавляется каждый объект как один список. Таким образом, вывод price будет, например, [[a], [b], [c]]. Мне бы хотелось, чтобы это было похоже на [a, b, c] У меня возникли проблемы с решением этих двух проблем.

Спасибо :)

Ответы [ 2 ]

1 голос
/ 10 января 2020

Анализ ответа от requests.get() как JSON вместо использования BeautifulSoup:

import requests

url = "https://api.binance.com/api/v3/ticker/price?symbol=ETHUSDT"
response = requests.get(url)
response.raise_for_status()

data = response.json()
print(data["price"])
1 голос
/ 10 января 2020

Чтобы получить числа вместо строк:

float_match = [float(el) for el in match]

Чтобы получить список вместо списка списков:

for el in float_match:
    price.append(el)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...