我有一个看起来像这样的JSON文件:
{ data:
{ 123:
{ 212:
{ 343:
在python中,我使用json.loads(r.text)加载JSON。数据对象内的字符串不保证是那些,但可以是任何数字。我想要做的是能够获得这些数字,以便我可以存储在数组中。在这个例子中,我希望数组看起来像[123,212,343]。反正有没有这样做,因为它们是嵌套对象而不是JSON数组?
由于
答案 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
调用并将键保留为字符串。