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
调用,只将键保留为字符串。
我有一个 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
调用,只将键保留为字符串。