Posts: 23
Threads: 11
Joined: Nov 2018
Quote:Hello!
I am trying to get all the values individually for each asset for example:
BCHUSD
a = 301.340000
b = 301.160000
c = 301.280000
TRXUSD
a = 0.0609450
b = 0.0609440
c = 0.0609540 and so on...
Could someone tell me how I can do it please?
Regards!
import requests
import json
while True:
req = requests.get('https://api.kraken.com/0/public/Ticker?pair=BCHUSD,TRXUSD,XRPUSD')
print(req)
<Response [200]>
print(type(req))
<class 'requests.models.Response'>
obj = req.json()
print(type(obj))
<class 'dict'>
print(obj)
{'error': [], 'result': {'BCHUSD': {'a': ['301.340000', '8', '8.000'], 'b': ['301.160000', '5', '5.000'], 'c': ['301.280000', '2.17601336'], 'v': ['24.29958509', '5601.96455701'], 'p': ['301.518130', '277.596849'], 't': [15, 2308], 'l': ['299.000000', '260.000000'], 'h': ['302.390000', '309.900000'], 'o': '299.000000'},
'TRXUSD': {'a': ['0.0609450', '70500', '70500.000'], 'b': ['0.0609440', '1094', '1094.000'], 'c': ['0.0609540', '360.09238846'], 'v': ['19826.64747345', '9636655.93947494'], 'p': ['0.0610639', '0.0589701'], 't': [22, 1735], 'l': ['0.0608850', '0.0562060'], 'h': ['0.0612840', '0.0618410'], 'o': '0.0611130'},
'XXRPZUSD': {'a': ['0.69453000', '720', '720.000'], 'b': ['0.69419000', '694', '694.000'], 'c': ['0.69180000', '2196.58617800'], 'v': ['235770.55961560', '28023892.06456976'], 'p': ['0.69880570', '0.66007675'], 't': [415, 10359], 'l': ['0.69121000', '0.62229000'], 'h': ['0.70386000', '0.72105000'], 'o': '0.69935000'}}}
for k, v in obj.items():
if type(v) is dict and k:
for nk, nv in v.items():
print(nk, nv)
BCHUSD {'a': ['298.240000', '11', '11.000'], 'b': ['298.040000', '3', '3.000'], 'c': ['299.000000', '0.89507885'], 'v': ['38.42175237', '5614.56089299'], 'p': ['300.890848', '277.650439'], 't': [24, 2314], 'l': ['299.000000', '260.000000'], 'h': ['302.390000', '309.900000'], 'o': '299.000000'}
TRXUSD {'a': ['0.0608250', '4881', '4881.000'], 'b': ['0.0607820', '40500', '40500.000'], 'c': ['0.0608630', '81.94337742'], 'v': ['21067.61432979', '9622286.56922629'], 'p': ['0.0610566', '0.0589675'], 't': [25, 1729], 'l': ['0.0608630', '0.0562060'], 'h': ['0.0612840', '0.0618410'], 'o': '0.0611130'}
XXRPZUSD {'a': ['0.69018000', '666', '666.000'], 'b': ['0.69000000', '42829', '42829.000'], 'c': ['0.69022000', '358.00000000'], 'v': ['287549.02071579', '27810492.67564827'], 'p': ['0.69737332', '0.65981291'], 't': [429, 10340], 'l': ['0.69000000', '0.62229000'], 'h': ['0.70386000', '0.72105000'], 'o': '0.69935000'}
Posts: 1,838
Threads: 2
Joined: Apr 2017
Feb-25-2022, 05:26 AM
(This post was last modified: Feb-25-2022, 05:26 AM by ndc85430.)
OK, so nv there is a dict isn't it? You know how to iterate over a dict.
Posts: 6,794
Threads: 20
Joined: Feb 2020
Feb-25-2022, 05:55 AM
(This post was last modified: Feb-25-2022, 02:14 PM by deanhystad.)
You haven't asked a question here. What are you trying to do with req? I would think that if req["error"] is empty that req["result"] will be full of the information you need. What do you want to do with that information?
for currency_tag, currency_info in req["result"].items():
print(currency_tag)
for key, value in currency_info.items():
print(key, value) I would put this in a dataframe.
req = {
'error': [],
'result': {
'BCHUSD': {
'a': ['301.340000', '8', '8.000'],
'b': ['301.160000', '5', '5.000'],
'c': ['301.280000', '2.17601336'],
'v': ['24.29958509', '5601.96455701'],
'p': ['301.518130', '277.596849'],
't': [15, 2308],
'l': ['299.000000', '260.000000'],
'h': ['302.390000', '309.900000'],
'o': '299.000000'
},
'TRXUSD': {
'a': ['0.0609450', '70500', '70500.000'],
'b': ['0.0609440', '1094', '1094.000'],
'c': ['0.0609540', '360.09238846'],
'v': ['19826.64747345', '9636655.93947494'],
'p': ['0.0610639', '0.0589701'],
't': [22, 1735],
'l': ['0.0608850', '0.0562060'],
'h': ['0.0612840', '0.0618410'],
'o': '0.0611130'
},
'XXRPZUSD': {
'a': ['0.69453000', '720', '720.000'],
'b': ['0.69419000', '694', '694.000'],
'c': ['0.69180000', '2196.58617800'],
'v': ['235770.55961560', '28023892.06456976'],
'p': ['0.69880570', '0.66007675'],
't': [415, 10359],
'l': ['0.69121000', '0.62229000'],
'h': ['0.70386000', '0.72105000'],
'o': '0.69935000'
}
}
}
import pandas as pd
df = pd.DataFrame(req["result"])
print(df) Output: BCHUSD TRXUSD XXRPZUSD
a [301.340000, 8, 8.000] [0.0609450, 70500, 70500.000] [0.69453000, 720, 720.000]
b [301.160000, 5, 5.000] [0.0609440, 1094, 1094.000] [0.69419000, 694, 694.000]
c [301.280000, 2.17601336] [0.0609540, 360.09238846] [0.69180000, 2196.58617800]
v [24.29958509, 5601.96455701] [19826.64747345, 9636655.93947494] [235770.55961560, 28023892.06456976]
p [301.518130, 277.596849] [0.0610639, 0.0589701] [0.69880570, 0.66007675]
t [15, 2308] [22, 1735] [415, 10359]
l [299.000000, 260.000000] [0.0608850, 0.0562060] [0.69121000, 0.62229000]
h [302.390000, 309.900000] [0.0612840, 0.0618410] [0.70386000, 0.72105000]
o 299.000000 0.0611130 0.69935000
You can do lots of interesting things with a dataframe.
Posts: 12,030
Threads: 485
Joined: Sep 2016
Or as a function:
dict1 = {'error': [], 'result': {'BCHUSD': {'a': ['301.340000', '8', '8.000'], 'b': ['301.160000', '5', '5.000'], 'c': ['301.280000', '2.17601336'], 'v': ['24.29958509', '5601.96455701'], 'p': ['301.518130', '277.596849'], 't': [15, 2308], 'l': ['299.000000', '260.000000'], 'h': ['302.390000', '309.900000'], 'o': '299.000000'},
'TRXUSD': {'a': ['0.0609450', '70500', '70500.000'], 'b': ['0.0609440', '1094', '1094.000'], 'c': ['0.0609540', '360.09238846'], 'v': ['19826.64747345', '9636655.93947494'], 'p': ['0.0610639', '0.0589701'], 't': [22, 1735], 'l': ['0.0608850', '0.0562060'], 'h': ['0.0612840', '0.0618410'], 'o': '0.0611130'},
'XXRPZUSD': {'a': ['0.69453000', '720', '720.000'], 'b': ['0.69419000', '694', '694.000'], 'c': ['0.69180000', '2196.58617800'], 'v': ['235770.55961560', '28023892.06456976'], 'p': ['0.69880570', '0.66007675'], 't': [415, 10359], 'l': ['0.69121000', '0.62229000'], 'h': ['0.70386000', '0.72105000'], 'o': '0.69935000'}}}
def display_dict(dictname, level=0):
indent = " " * (4 * level)
for key, value in dictname.items():
if isinstance(value, dict):
print(f'\n{indent}{key}')
level += 1
display_dict(value, level)
else:
print(f'{indent}{key}: {value}')
if level > 0:
level -= 1
display_dict(dict1) Output: error: []
result
BCHUSD
a: ['301.340000', '8', '8.000']
b: ['301.160000', '5', '5.000']
c: ['301.280000', '2.17601336']
v: ['24.29958509', '5601.96455701']
p: ['301.518130', '277.596849']
t: [15, 2308]
l: ['299.000000', '260.000000']
h: ['302.390000', '309.900000']
o: 299.000000
TRXUSD
a: ['0.0609450', '70500', '70500.000']
b: ['0.0609440', '1094', '1094.000']
c: ['0.0609540', '360.09238846']
v: ['19826.64747345', '9636655.93947494']
p: ['0.0610639', '0.0589701']
t: [22, 1735]
l: ['0.0608850', '0.0562060']
h: ['0.0612840', '0.0618410']
o: 0.0611130
XXRPZUSD
a: ['0.69453000', '720', '720.000']
b: ['0.69419000', '694', '694.000']
c: ['0.69180000', '2196.58617800']
v: ['235770.55961560', '28023892.06456976']
p: ['0.69880570', '0.66007675']
t: [415, 10359]
l: ['0.69121000', '0.62229000']
h: ['0.70386000', '0.72105000']
o: 0.69935000
BashBedlam likes this post
|