簡體   English   中英

在python中使用Json時出現KeyError

[英]Keyerror when using Json in python

我正在使用基本腳本從交易所檢索一些交易數據,這是響應:

{'info': {'symbol': 'ETHBTC',
  'orderListId': -1,
  'price': '0.01083700',
  'origQty': '0.01800000',
  'executedQty': '0.00000000',
  'cummulativeQuoteQty': '0.00000000',
  'status': 'NEW',
  'timeInForce': 'GTC',
  'type': 'LIMIT',
  'side': 'BUY',
  'stopPrice': '0.00000000',
  'icebergQty': '0.00000000',
  'time': 1567078061338,
  'updateTime': 1567078061338,
  'isWorking': True}}

現在,我想單獨打印此響應的某些部分。

如果我嘗試:

tot = exchange.fetch_open_orders()
    for x in tot:
        print(x['symbol'])

我會得到: 'ETHBTC' 到目前為止,一切正常。

但是,如果我嘗試:

tot = exchange.fetch_open_orders()
    for x in tot:
        print(x['origQty']) 

我收到一個KeyError: 'origQty' ,這很奇怪,因為當我嘗試引用一個不存在但存在的參數時,應該出現此錯誤,因為它在我的響應中。 我究竟做錯了什么?

在這里,您需要在鍵上迭代字典,因此每次嘗試從鍵中獲取值時,這就是為什么它提供KeyError的原因。 當字典中不存在的鍵仍被訪問時,會發生這種情況。 這可以通過以下方式實現。

for x in tot:
    print(tot[x].get('symbol'))
    print(tot[x].get('origQty'))

給輸出

ETHBTC
0.01800000

我不確定tot的格式是什么。 但是您可以嘗試一下。

for x, v in dict(tot).items():
    print(v['symbol'])
    print(v['origQty'])

輸出:

ETHBTC
0.01800000

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM