Python Forum
JSON response from REST service get nested value
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
JSON response from REST service get nested value
#1
When I try to do a priceticker on the Bitvavo API ik get a JSON list response. How do I get one or two values from this list.

from python_bitvavo_api.bitvavo import Bitvavo
import json
import requests

bitvavo = Bitvavo({
  'APIKEY': 'xxxx',
  'APISECRET': 'xxx',
  'RESTURL': 'https://api.bitvavo.com/v2',
  'WSURL': 'wss://ws.bitvavo.com/v2/',
  'ACCESSWINDOW': 10000,
  'DEBUGGING': False
})

response = bitvavo.time()
print("Bitvavo Time on server");
print(response);

print ("Bitvavo Price Ticker");
response = bitvavo.tickerPrice({});
The response will be:

Output:
[{'market': 'ADA-BTC', 'price': '0.0000086084'}, {'market': 'ADA-EUR', 'price': '0.1397'}, {'market': 'AE-BTC', 'price': '0.0000067917'}, {'market': 'AE-EUR', 'price': '0.11125'}, {'market': 'AION-BTC', 'price': '0.0000041387'}, {'market': 'AION-EUR', 'price': '0.062422'}, {'market': 'ANT-BTC', 'price': '0.00017657'}, {'market': 'ANT-EUR', 'price': '2.7721'}, {'market': 'ARK-BTC', 'price': '0.000021235'}, {'market': 'ARK-EUR', 'price': '0.33026'}, {'market': 'BAT-BTC', 'price': '0.00001244'}, {'market': 'BAT-EUR', 'price': '0.20247'}, {'market': 'BCH-BTC', 'price': '0.015544'}, {'market': 'BCH-EUR', 'price': '260.38'}, {'market': 'BSV-BTC', 'price': '0.009594'}, {'market': 'BSV-EUR', 'price': '150.71'}, {'market': 'BTC-EUR', 'price': '16001'}, {'market': 'CMT-BTC', 'price': '0.00000048141'}, {'market': 'CMT-EUR', 'price': '0.007542'}, {'market': 'DCR-BTC', 'price': '0.0011435'}, {'market': 'DCR-EUR', 'price': '20.318'}, {'market': 'DGB-BTC', 'price': '0.0000013197'}, {'market': 'DGB-EUR', 'price': '0.019903'}, {'market': 'ELF-BTC', 'price': '0.0000056772'}, {'market': 'ELF-EUR', 'price': '0.086779'}, {'market': 'ENJ-BTC', 'price': '0.0000082275'}, {'market': 'ENJ-EUR', 'price': '0.12203'}, {'market': 'EOS-BTC', 'price': '0.00016488'}, {'market': 'EOS-EUR', 'price': '2.6584'}, {'market': 'ETC-BTC', 'price': '0.00034581'}, {'market': 'ETC-EUR', 'price': '5.5757'}, {'market': 'ETH-BTC', 'price': '0.031227'}, {'market': 'ETH-EUR', 'price': '499.49'}]
How can I pront only the price from:
ETH-BTC & ETH-EUR

Every time I try to do something with .json it say its a list not a string
Reply
#2
Looks like the response object is already a python data structure. You don't need to deserialize it.

Try:

response = [{'market': 'ADA-BTC', 'price': '0.0000086084'}, {'market': 'ADA-EUR', 'price': '0.1397'}, {'market': 'AE-BTC', 'price': '0.0000067917'}, {'market': 'AE-EUR', 'price': '0.11125'}, {'market': 'AION-BTC', 'price': '0.0000041387'}, {'market': 'AION-EUR', 'price': '0.062422'}, {'market': 'ANT-BTC', 'price': '0.00017657'}, {'market': 'ANT-EUR', 'price': '2.7721'}, {'market': 'ARK-BTC', 'price': '0.000021235'}, {'market': 'ARK-EUR', 'price': '0.33026'}, {'market': 'BAT-BTC', 'price': '0.00001244'}, {'market': 'BAT-EUR', 'price': '0.20247'}, {'market': 'BCH-BTC', 'price': '0.015544'}, {'market': 'BCH-EUR', 'price': '260.38'}, {'market': 'BSV-BTC', 'price': '0.009594'}, {'market': 'BSV-EUR', 'price': '150.71'}, {'market': 'BTC-EUR', 'price': '16001'}, {'market': 'CMT-BTC', 'price': '0.00000048141'}, {'market': 'CMT-EUR', 'price': '0.007542'}, {'market': 'DCR-BTC', 'price': '0.0011435'}, {'market': 'DCR-EUR', 'price': '20.318'}, {'market': 'DGB-BTC', 'price': '0.0000013197'}, {'market': 'DGB-EUR', 'price': '0.019903'}, {'market': 'ELF-BTC', 'price': '0.0000056772'}, {'market': 'ELF-EUR', 'price': '0.086779'}, {'market': 'ENJ-BTC', 'price': '0.0000082275'}, {'market': 'ENJ-EUR', 'price': '0.12203'}, {'market': 'EOS-BTC', 'price': '0.00016488'}, {'market': 'EOS-EUR', 'price': '2.6584'}, {'market': 'ETC-BTC', 'price': '0.00034581'}, {'market': 'ETC-EUR', 'price': '5.5757'}, {'market': 'ETH-BTC', 'price': '0.031227'}, {'market': 'ETH-EUR', 'price': '499.49'}]

print([tuple(x.values()) for x in response if x["market"] in ["ETH-BTC", "ETH-EUR"]])

# or...
print()

wanted_markets = ["ETH-BTC", "ETH-EUR"]
for d in response:
    if d['market'] in wanted_markets:
        print(f"Market: {d['market']}, Price: {d['price']}")
nl2ttl likes this post
Reply
#3
@bowlofred This did the trick! Thank you very much
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  [split] Parse Nested JSON String in Python mmm07 4 1,521 Mar-28-2023, 06:07 PM
Last Post: snippsat
  Response.json list indices must be integers or slices, not str [SOLVED] AlphaInc 4 6,369 Mar-24-2023, 08:34 AM
Last Post: fullytotal
  Name not found in response json NewbiePyt 4 1,065 Dec-29-2022, 11:12 AM
Last Post: buran
  Read nested data from JSON - Getting an error marlonbown 5 1,358 Nov-23-2022, 03:51 PM
Last Post: snippsat
  Convert nested sample json api data into csv in python shantanu97 3 2,808 May-21-2022, 01:30 PM
Last Post: deanhystad
  Convert python dataframe to nested json kat417 1 6,324 Mar-18-2022, 09:14 PM
Last Post: kat417
  Problem with nested JSON Kalet 7 2,782 Dec-09-2021, 11:13 PM
Last Post: Gribouillis
  parser json response absolut 4 2,818 Sep-15-2020, 12:10 PM
Last Post: buran
  Empty response to request causing .json() to error t4keheart 1 10,045 Jun-26-2020, 08:35 PM
Last Post: bowlofred
  JSON -> CSV conversion help! *I think Nested JSON* BrandonKastning 4 3,329 Apr-19-2020, 05:18 AM
Last Post: BrandonKastning

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020