我正在尝试提取一个特定的列或层,不知道你想要什么叫它..这是一个json对象里面我已经转换为我认为是分层列表但我有两个问题,我的检查是否"返回"在列表中没有找到任何东西,即使在打印jsonb时我可以看到它在列表中,我的第二个问题是如何从图层中提取某个列...在这种情况下我需要数字" 43343243& #34;出第二层并放入一个变量我尝试用jsonb引用它["返回"] [0]我得到了一个关键错误..
我的代码:
def worker(pairtxt):
while (1 < 2):
balanceobject = requests.post(urlauth, headers=headers, data=paybytes)
json_stringb = str(balanceobject.content, 'utf8')
jsonb = json.loads(json_stringb)
print(jsonb)
if "return" in jsonb: #fails
print(jsonb["return"]["0"]) # key error
print(jsonb["return"]) # prints everything even layers under the number
我的jsonb打印输出
{'success': 1, 'return': {'43343243': {'status': 0, 'pair': 'rgeg',
'type': 'sell', 'amount': 0.01000002, 'rate': 1.0,
'timestamp_created': 1502642258}}}
答案 0 :(得分:1)
因为43343243是键而非值,所以需要获取返回键:
jsonb = {'success': 1, 'return': {'43343243': {'status': 0, 'pair': 'rgeg', 'type': 'sell', 'amount': 0.01000002, 'rate': 1.0, 'timestamp_created': 1502642258}}}
numberWanted = list(jsonb['return'].keys())[0]
print(numberWanted) # => 43343243
答案 1 :(得分:0)
我认为你将输出jsonb
看作一个列表(这不是真的)。 jsonb
是一本字典。要验证您是否可以执行此操作:
print(type(jsonb))
字典具有键值对。 成功是关键,1是价值。 return是一个键,值是另一个字典。
{
'43343243': {
'status': 0,
'pair': 'rgeg',
'type': 'sell',
'amount': 0.01000002,
'rate': 1.0,
'timestamp_created': 1502642258
}
}
如果您想访问43343243
,则可以执行jsonb['return']['43343243']