我想在Python中循环浏览一个任意的JSON对象并获得所有的值。我不知道这个JSON对象是什么样子的。我只是想循环浏览所有的元素。所以也要通过子对象和列表。我现在从互联网上取了一个任意的JSON对象来测试。但它也可以是任何其他的JSON对象。目前我是这样尝试的。
def printJSONVals(json_object):
it = iter(json_object)
n = json_object[next(it)]
while n is not None:
print n
n = json_object[next(it)]
json_obj = json.loads('{ "city" : "AGAWAM", "loc" : [ -72.622739, 42.070206 ], "pop" : 15338, "state" : "MA", "_id" : "01001"}')
printJSONVals(json_obj)
不幸的是,这不起作用,因为我得到的是列表"loc"
,而不是单个值。有没有一种方法可以循环浏览JSON对象,而不考虑嵌套的深度,并始终将各个键的值存储在变量n
中?
因此,我希望变量n
总是包含键的值。不管对象嵌套的深度如何。所以我希望这里有这样的输出。
AGAWAM
-72.622739
42.070206
15338
01001
我想以后把这些写在一个二维数组中。但这并不重要。只要我能够输出独立于嵌套的值就足够了。
I use Python version 2.7.17