我怎样才能得到“最后的”#39;这本词典的价值?

时间:2014-12-28 01:36:06

标签: python json dictionary

我正在使用一个API向我的Python程序发送以下数据:

{"success":"true","message":"","result":   
 [{"Last":"0.00000000","Bid":"42258.06451613","Ask":"100000000.0"}]}

我很擅长在Python中使用JSON,但我认为我可以做类似的事情:

data = json.load(urllib2.urlopen("apicall"))
last = data["success"]["message"]["result"]["Last"]

但显然我需要使用整数。所以当我做的时候

last = data[0][0][0][0]

我被告知这是一个无效的密钥。所以我的问题是:在这个例子中获取'Last'键值的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

正确的方法是解决外部字典,然后索引列表,然后获取'Last'密钥:

last = data['result'][0]['Last']

演示:

>>> from pprint import pprint
>>> data = {"success":"true","message":"","result":   
...  [{"Last":"0.00000000","Bid":"42258.06451613","Ask":"100000000.0"}]}
>>> pprint(data)
{'message': '',
 'result': [{'Ask': '100000000.0',
             'Bid': '42258.06451613',
             'Last': '0.00000000'}],
 'success': 'true'}
>>> data['result']
[{'Ask': '100000000.0', 'Bid': '42258.06451613', 'Last': '0.00000000'}]
>>> data['result'][0]
{'Ask': '100000000.0', 'Bid': '42258.06451613', 'Last': '0.00000000'}
>>> data['result'][0]['Last']
'0.00000000'

您的第一次尝试尝试解决顶级字典中的所有密钥,这些密钥会失败,因为data['success']是一个字符串,并且['message']无法对字符串编制索引。

您的第二次尝试失败,因为顶级对象是字典,而不是序列,并且其中没有0键。