繁体   English   中英

Python通过索引获取JSON对象

[英]Python get JSON object by index

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

{ data:
      { 123:

      { 212:

      { 343: 

在python中,我使用json.loads(r.text)加载JSON。 数据对象内的字符串不能保证是这些字符串,但可以是任何数字。 我想要做的是能够获取这些数字,以便随后将其存储在数组中。 在此示例中,我希望数组看起来像[123,212,343]。 由于它们是嵌套对象而不是JSON数组,因此无论如何要这样做?

谢谢

非常简短:

#!/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调用,而只将键保留为字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM