Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检索json数据时Python中的Keyerror_Python_Json - Fatal编程技术网

检索json数据时Python中的Keyerror

检索json数据时Python中的Keyerror,python,json,Python,Json,我创建了一个Python脚本,用于从加密货币交易所获取未结订单 当我使用以下方式连接到api时: order = exchange.fetch_open_orders(symbol) 我收到以下答复: [{'info': {'symbol': 'ETHBTC', 'orderId': 507325551, 'orderListId': -1, 'clientOrderId': 'web_b75c7f9be90849beac14cd86f575

我创建了一个Python脚本,用于从加密货币交易所获取未结订单

当我使用以下方式连接到api时:

order = exchange.fetch_open_orders(symbol)
我收到以下答复:

[{'info': {'symbol': 'ETHBTC', 
            'orderId': 507325551, 'orderListId': -1, 'clientOrderId': 
            'web_b75c7f9be90849beac14cd86f575ac01', 'price': '0.02504200', 
            'origQty': '0.02100000', 'executedQty': '0.00000000', 
            'cummulativeQuoteQty': '0.00000000', 'status': 'NEW', 
            'timeInForce': 'GTC', 'type': 'LIMIT', 'side': 'SELL', 
            'stopPrice': '0.00000000', 'icebergQty': '0.00000000', 
            'time': 1571163346981, 'updateTime': 1571163346981, 'isWorking': True}, 
            'id': '507325551', 'timestamp': 1571163346981, 'datetime': '2019-10-15T18:15:46.981Z', 
            'lastTradeTimestamp': None, 
            'symbol': 'ETH/BTC', 'type': 'limit', 
            'side': 'sell', 'price': 0.025042, 
            'amount': 0.021, 'cost': 0.0, 'average': None, 'filled': 0.0, 
            'remaining': 0.021, 'status': 'open', 'fee': None, 'trades': None}]
这是一个很长的回答,我不希望这里的所有内容,只打印一些值,我尝试了以下方法:

for x in order:
    sym = x['symbol']
    price = x['price']
    status = x['status']
    amount = x['amount']
    side = x['side']
    orig = x['origQty']


print(sym, price, status, amount, side, orig)
这段代码一直工作到行
orig=x['origQty']
我在那里得到一个
keyrerror:'origQty'

我不明白这是从哪里来的,因为所有其他变量都打印出来了,没有任何错误,而且
origQty
在响应中,而这个错误通常在我试图查找不存在的东西时出现。
有人能帮我找到我做错了什么吗?

'origQty'
嵌套在
'info'
键下,请尝试使用
x['info']['origQty']

'origQty'
嵌套在
'info'
键下,尝试使用
x['info'['origQty']
取而代之。

您可以看到您的dict有一个内部dict,其中包含
原始数量

所以
orig=x['info']['origQty']

更新
检查一下,我想这会使它的可视化更加清晰:)

您可以看到您的dict有一个内部dict,其中包含
origQty

所以
orig=x['info']['origQty']

更新
检查一下,我想这会使它的可视化更加清晰:)

它正在工作!但是为什么我不为所有其他的价值观这样做呢?给我6分钟接受你的回答,因为这些键也存在于
info
@Jack022之外。我添加了一个链接,去检查它,它显示json视觉,这有助于你理解它。再次感谢@Reznik!它起作用了!但是为什么我不为所有其他的价值观这样做呢?给我6分钟接受你的回答,因为这些键也存在于
info
@Jack022之外。我添加了一个链接,去检查它,它显示json视觉,这有助于你理解它。再次感谢@Reznik!origQty键仅存在于内部目录中。您仅从外部目录获取项目。请改用
x[“info”][“origQty”]
。origQty键仅存在于内部目录中。您仅从外部目录获取项目。请改用
x[“info”][“origQty”]