Foros del Web » Programando para Internet » Python »

sacar valores de json de buda.

Estas en el tema de sacar valores de json de buda. en el foro de Python en Foros del Web. hola estoy jugando con una api de buda para automatizar compras de criptomonedas. tengo una rapeberry pi con python3. tengo el siguiente código de buda, ...
  #1 (permalink)  
Antiguo 02/03/2021, 10:33
Avatar de mveraa  
Fecha de Ingreso: diciembre-2002
Ubicación: santiago-chilito
Mensajes: 1.927
Antigüedad: 18 años, 4 meses
Puntos: 2
sacar valores de json de buda.

hola estoy jugando con una api de buda para automatizar compras de criptomonedas.

tengo una rapeberry pi con python3.

tengo el siguiente código de buda, en python, pero no logro sacar unos valores para pasarlo a una bd.
CODIGO DE BUDA:
import sys
import os
import json

sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os .path.abspath(__file__)))))

# importar módulo del cliente
import surbtc

# crear cliente
Client = surbtc.Client()
Market = Client.getMarket('BTC-CLP')
print(Market.getTicker())



RESPUESTA:

{'market_id': 'BTC-CLP', 'last_price': ['35709299.0', 'CLP'], 'min_ask': ['35709266.0', 'CLP'], 'max_bid': ['35600000.0', 'CLP'], 'volume': ['41.82067784', 'BTC'], 'price_variation_24h': '-0.015', 'price_variation_7d': '-0.065'}
{'market_id': 'BTC-CLP', 'last_price': ['35709266.0', 'CLP'], 'min_ask': ['35709266.0', 'CLP'], 'max_bid': ['35600000.0', 'CLP'], 'volume': ['41.84281532', 'BTC'], 'price_variation_24h': '-0.015', 'price_variation_7d': '-0.065'}


Necesito extraer por el momento solo dos valores:
last_price
price_variation_24h


Espero alguien me pueda orientar.

Muchas gracias.
__________________
"Cuando se adelanta un oponente, enfréntalo y salúdalo; si intenta retroceder, déjalo seguir su camino"
  #2 (permalink)  
Antiguo 02/03/2021, 16:59
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 15 años
Puntos: 120
Respuesta: sacar valores de json de buda.

por lo que pones te retorna un JSON en cada LINEA, lo que tienes que hacer es agarrar
Market.getTicker()
luego hacerle un SPLIT con el simbolo salto de linea "\n" o puede que sea "\r\n"

y pasarle el bucle y por cada LINEA extraida, pasarle recien el JSON.parse y asi obtendras el dato que quieres,

o bien hazlo como se hace en la madre RUSIA
con expresiones regulares :v , ajaja bueno eso si quieres liarte
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9
  #3 (permalink)  
Antiguo 02/03/2021, 19:17
Avatar de mveraa  
Fecha de Ingreso: diciembre-2002
Ubicación: santiago-chilito
Mensajes: 1.927
Antigüedad: 18 años, 4 meses
Puntos: 2
Respuesta: sacar valores de json de buda.

muchas gracias por la orientacion
__________________
"Cuando se adelanta un oponente, enfréntalo y salúdalo; si intenta retroceder, déjalo seguir su camino"
  #4 (permalink)  
Antiguo 04/03/2021, 19:27
Avatar de mveraa  
Fecha de Ingreso: diciembre-2002
Ubicación: santiago-chilito
Mensajes: 1.927
Antigüedad: 18 años, 4 meses
Puntos: 2
Respuesta: sacar valores de json de buda.

debo aclara que son pobres mis conocimientos en python.

al hacer siguiente print(type(cadena)) dice
<class 'dict'> , lo cual no tengo claro lo que significa.


Market = Client.getMarket('BTC-CLP')
cadena=Market.getTicker()
print(type(cadena))


--------------
Intento tomarlo como una cadena.

Market = Client.getMarket('BTC-CLP')
cadena=Market.getTicker()
cadena=str(cadena)

print(cadena)
print(type(cadena))

print("")
print(cadena["2"])

Pero me dice :



Traceback (most recent call last):
File "ticker2.py", line 64, in <module>
print(cadena["2"])
TypeError: string indices must be integers



Espero me pueden orientar.
gracias.
__________________
"Cuando se adelanta un oponente, enfréntalo y salúdalo; si intenta retroceder, déjalo seguir su camino"
  #5 (permalink)  
Antiguo 06/03/2021, 16:02
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 15 años
Puntos: 120
Respuesta: sacar valores de json de buda.

te sera un poco complicado realizar ciertas cosas, o comprenderlas, pero bueno animo, y si puedes trata de usar los recursos a tu mano, si no tienes dominio de ingles usa el TRADUCTOR de google

por ejemplo el error te dice

TypeError: string indices must be integers
TypeError: los indices de "string" deben ser ENTEROS

"2" = esto es un string
'2' = es string, dependiendo de lenguaje de programacion, por que tambien puede ser un CHAR
2.00 = este es un FLOAT ,
2 = este es un ENTERO => Integer

bueno continuando

cadena[INDICE]

asi que el error es por que
cadena["2"] estas usando un STRING como INDICE
lo correcto es
cadena[2]
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9



La zona horaria es GMT -6. Ahora son las 23:02.