0
votes

Python (Demandes) Comment analyser uniquement certaines données JSON, comment rendre cette morceau de boucle de code (pas aussi importante)

le figuré grâce à strong> loki !

Toutes les données de 1 seconde des journaux de impression (get_rates ()) code> fonction à un fichier .txt code>, j'ai donc fait une boucle infinie tandis que la boucle (suggérée par Loki) P>

import requests
from time import sleep
from datetime import datetime,date

old_print = print 
def tstamped_print(*args, **kwargs):
  old_print(datetime.now(), *args, **kwargs)
print = tstamped_print

# Getting rates
def get_rates():
    PREEVURL = requests.get('http://preev.com/pulse/units:btc+usd/sources:bitstamp+kraken')
    DATA = PREEVURL.json()
    RESULT = {}
    for key, value in DATA["btc"]["usd"].items():
        RESULT[key] = (value['last'])
    return RESULT

# Infinite while loop
a = 1
while a < 10:
    print(get_rates(),file=open("btc_price1.txt", "a"))
    print(get_rates())
    sleep(2)
    a = a - 0
else:
    print("loop end")


2 commentaires

S'il vous plaît expliquer mieux qui est la sortie souhaitée et que voulez-vous faire.


D'accord. Merci pour les commentaires que je me ferai plus clair la prochaine fois


3 Réponses :


0
votes

Le problème est que votre fichier data.json initial est vide. La solution la plus simple est de placer un dictionnaire vide ou quelque chose dans votre fichier data.json. Assurez-vous simplement que Data.json n'est pas un fichier vide.


1 commentaires

Cela ne résout pas à aucun de mes problèmes, cependant d'essayer d'obtenir une certaine valeur "9377.60", que ce soit à l'aide de REGEX ou qu'il y a probablement une tonne de manières. Je suis assez nouveau à Python pour que toute aide est grandement appréciée



1
votes

Si je comprends bien, vous voulez faire deux choses:

  1. extraire un débit bitcoin de cette réponse de l'API li>
  2. Demandes de boucle et stockez chaque résultat dans un fichier pour enregistrer l'historique li> OL>

    Voyons comment faire cela: P>

    1. Appelez l'API et stockez le résultat LI> ol>

      Si vous l'appelez dans une coque Python, vous pouvez regarder les données suivantes: P>

      def get_rates():
          url_resp = requests.get('http://preev.com/pulse/units:btc+usd/sources:bitstamp+kraken') # (your url)
          data = url_resp.json()
          result = {}
          for exchange, rates in data['btc']['usd'].items():
              result[exchange] = float(rates['last'])
          return result
      


1 commentaires

Merci beaucoup! J'apprends tellement. Beaucoup d'appréciation!



0
votes

le figuré grâce à strong> loki !

Toutes les données de 1 seconde des journaux de chaque impression (get_rates ()) code> fonction à un fichier .txt code>, donc j'ai fait une boucle infinie tandis que la boucle (suggérée par Loki) P>

import time
import requests
import datetime
from time import sleep
from datetime import datetime,date


'''
print('Enter correct username and password combo to continue')
count = 0
username = '420'
while count < 10:
    username = input('login code: ')
    if username== '420':
        print('Access granted')
        count = 11
        break
    else:
        print('Access denied. Try again.')
        count =- 1
print('====> LOGGED IN','\n')
'''     

today = time.strftime("(%Y-%m-%d %I:%M%p)")
old_print = print
def tstamped_print(*args, **kwargs):
  old_print(today, *args, **kwargs)
print = tstamped_print

# Getting rates
def get_rates():
    PREEVURL = requests.get('http://preev.com/pulse/units:btc+usd/sources:bitstamp+kraken')
    DATA = PREEVURL.json()
    RESULT = {}
    for key, value in DATA["btc"]["usd"].items():
        RESULT[key] = (value['last'])
    return RESULT

# Infinite while loop
a = 1
PREEVURL = requests.get('http://preev.com/pulse/units:btc+usd/sources:bitstamp+kraken')
DATA = PREEVURL.json()
while a < 10:
    print(get_rates(), file=open("btc_price1.txt", "a"))
    print(get_rates())
    sleep(1)
    a = a - 0
else:
    print("loop end")


0 commentaires