2
votes

Comment filtrer une chaîne?

Je fabrique un bot qui obtient des informations à partir d'une API, le problème est que cela me donne beaucoup de données et que je n'ai besoin que de quelque chose en particulier. J'ai juste besoin d'obtenir l'équilibre, le statut de mineur et le hashrate.

import os
import discord
import requests
from bs4 import BeautifulSoup

token = "DISCORD_TOKEN"
url = "https://eth.crazypool.org/api/accounts/0x54DcB3b38d05940d3A88ADeff5B57f15f7F64A02"
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.193 Safari/537.36'}

client = discord.Client()

@client.event
async def on_ready():
    await client.change_presence(activity=discord.Game(name="Mining eth"))
    print("On!")

@client.event
async def on_message(message):
    page = requests.get(url, headers=headers)
    jk = BeautifulSoup(page.content, "html.parser")
    if message.content == "!miner":
        await message.channel.send(jk)
    if message.content == "!balance":
        await message.channel.send(jk)
    if message.content == "!shares":
        await message.channel.send(jk)


client.run(token)

Production: entrez la description de l'image ici


1 commentaires

Le contenu de la chaîne semble au format JSON, il peut donc être converti en données Python à l'aide du module json intégré. Cela peut donc vous faciliter la tâche.


3 Réponses :


2
votes

Vous pouvez utiliser requests.json () ce que vous auriez à faire est

page = page.json()
balance = page["stats"]["balance"]

Et ce que cela fait, c'est qu'il entre dans la section "stats" des données json puis dans la "balance" qui, si vous print(balance) , imprimera la balance.


0 commentaires

1
votes

Utilisez requests.json () puis allez simplement dans les "stats" puis "balance"


0 commentaires

2
votes

demandes.json () vous donnera la sortie sous forme de json, vous pourrez alors simplement la traiter comme si c'était la bibliothèque json.


0 commentaires