Python通过索引获取JSON对象

时间:2015-01-07 22:44:49

标签: python json

我有一个看起来像这样的JSON文件:

{ data:
      { 123:

      { 212:

      { 343: 

在python中,我使用json.loads(r.text)加载JSON。数据对象内的字符串不保证是那些,但可以是任何数字。我想要做的是能够获得这些数字,以便我可以存储在数组中。在这个例子中,我希望数组看起来像[123,212,343]。反正有没有这样做,因为它们是嵌套对象而不是JSON数组?

由于

1 个答案:

答案 0 :(得分:2)

非常简短:

#!/usr/bin/env python

import json

foo = json.loads('{"123": null, "234": null, "456": null}')
print map(int, foo.keys())

列表foo.keys()的顺序与JSON对象(或其字符串表示形式)中的顺序不同。

如果您需要保留订购,可以尝试以下修改:

#!/usr/bin/env python

import json, collections

foo = json.loads('{"123": null, "234": null, "456": null}', object_pairs_hook=collections.OrderedDict)
print map(int, foo.keys())

当您遍历键列表时,您可以按常规方式对单个键执行反向查找。

请注意,您可能希望将整数键转换回str()的Python字符串,以便检索其关联值。但是,如果您只想查找用于查找的键列表,并且实际上并不需要实际的整数值,则可以跳过初始map调用并将键保留为字符串。