从re.findall输出中删除引号

问题描述 投票:0回答:1

[我正在尝试使用Python 3从我的re.findall输出中删除引号。我尝试了来自各种论坛的建议,但是它没有按预期工作,最终想到了在这里问自己。

我的代码:

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]那样,在解决这两个问题时遇到了一些麻烦。

谢谢:)

python python-3.x list append
1个回答
1
投票

要获取浮点数而不是字符串:

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

要获取列表而不是列表列表:

for el in float_match:
    price.append(el)

1
投票

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"])
© www.soinside.com 2019 - 2024. All rights reserved.