2017-08-19 8 views
-1

Dies ist mein Code jetzt:Extrahieren Wert von dict in Python 3.5

import hashlib 
import hmac 
import time 
import requests 
import datetime 


def send_msg(msg, env='prod'): 
    if env == 'prod': 
     BLINKTRADE_API_URL = 'https://api.blinktrade.com' 
     BLINKTRADE_API_VERSION = 'v1' 
    else: 
     BLINKTRADE_API_URL = 'https://api.testnet.blinktrade.com' 
     BLINKTRADE_API_VERSION = 'v1' 
     TIMEOUT_IN_SECONDS = 10 
    key = 'mykeyhere' 
    secret = 'mysecrethere' 
    secret2 = bytearray(secret, 'utf8') #turn secret into bytearray 
    dt = datetime.datetime.now() 
    nonce = str(int((time.mktime(dt.timetuple()) + dt.microsecond/1000000.0) * 1000000)) 
    nonce = nonce.encode("utf8") 
    signature = hmac.new(secret2, nonce, digestmod=hashlib.sha256).hexdigest() 
    headers = { 
     'user-agent': 'blinktrade_tools/0.1', 
     'Content-Type': 'application/json',  # You must POST a JSON message 
     'ApiKey': key,       # Your APIKey 
     'Nonce': nonce,       # The nonce must be an integer, always greater than the previous one. 
     'Signature': signature     # Use the API Secret to sign the nonce using HMAC_SHA256 algo 
    } 
    url = '%s/tapi/%s/message' % (BLINKTRADE_API_URL, BLINKTRADE_API_VERSION) 
    return requests.post(url, json=msg, verify=True, headers=headers,).json() 



# Request Balance 
msg_balance = { 
    "MsgType": "U2", 
    "BalanceReqID": 1, 
} 

msg_orders = { 
    "MsgType": "U4", 
    "OrdersReqID": 930460 
} 

print(send_msg(msg_balance)) 

Diese Drucke:

{'Responses': [{'ClientID': 90829382, 'MsgType': 'U3', '4': {'BTC_locked': 737697, 'BTC': 737697, 'BRL': 746655, 'BRL_locked': 0}, 'BalanceReqID': 1}], 'Description': 'OK', 'Status': 200} 

Was ich brauche, ist diesen Wert "BRL" zu bekommen, "BTC". Nach 4 Stunden Recherche fand ich keine Lösung.

Ich habe versucht:

data = (send_msg(msg_balance)) 

print(data['Responses']) 

So weit so gut, aber ich kann nicht verwalten die die BTC und BRL Werte dann zu verwenden, zu erhalten. Wie extrahiert man diese Werte? Vielen Dank für Ihre Geduld.

+0

Lesen Sie, wie Python-Wörterbücher funktionieren. Dies ist ein typisches Beispiel für ein verschachteltes Wörterbuch. – TrigonaMinima

+0

Ich lese darüber seit gestern, ich fiel einfach, dass ich etwas wirklich dummes vermisse, löse ich immer diese Dinge auf eigene Faust, aber die gefundenen Lösungen haben nicht funktioniert ... –

Antwort

0
data = (send_msg(msg_balance)) 
print(data['Responses'][-1]['4']['BTC']) 

Dies löste mein Problem. Ich habe einfach nicht verstanden, warum [-1] statt [1].

+0

Indexierung beginnt in der Regel von 0. 1. Element in eine Liste wird bei Index 0 sein. Also, '' 'Daten ['Antworten'] [0]' '' wird auch funktionieren. – TrigonaMinima