import urllib.request, urllib.parse, json

token = open('/home/ubuntu/upstox_engine/upstox_token.txt').read().strip()
keys = ['NSE_INDEX|Nifty 50', 'NSE_FO|53940', 'NSE_FO|53944', 'NSE_FO|53932', 'NSE_FO|53939']
enc = ','.join([urllib.parse.quote(k) for k in keys])
url = 'https://api.upstox.com/v2/market-quote/quotes?instrument_key=' + enc
req = urllib.request.Request(url, headers={'Authorization': 'Bearer ' + token, 'Accept': 'application/json', 'User-Agent': 'Mozilla/5.0'})
try:
    with urllib.request.urlopen(req) as r:
        d = json.loads(r.read().decode())
        data = d.get('data', {})
        print('Returned keys:', list(data.keys()))
        for k in data:
            v = data[k]
            lp = v.get('last_price')
            vol = v.get('volume')
            oi = v.get('oi')
            print(k, '-> last_price:', lp, 'volume:', vol, 'oi:', oi)
except Exception as e:
    print('Error:', e)
