从python中嵌套的json结构中提取数据

时间:2015-11-04 20:10:56

标签: python json

我的json文件如下所示:

{"07/01/2015-08/01/2015": 
    {"ABC": [
              ["12015618727", "2015-07-29 02:32:01"], 
              ["12024079732", "2015-07-24 13:04:01"], 
              ["12024700142", "2015-07-02 00:00:00"]
             ]
    }
}

我想在python中从这里提取数字12015618727,12024079732,12024700142。

我写了这段代码:

import json
numbers=set()
input_file=open('filename', 'r')
json_decode=json.load(input_file)
for item in json_decode["07/01/2015-08/01/2015"]["ABC"]:
    for j in item:
        numbers.add(j[0])
print " ".join(str(x) for x in numbers)

但这不会打印数字。

1 个答案:

答案 0 :(得分:1)

Python有一个json解析库,有关详细信息,请参阅https://docs.python.org/2/library/json.html

用法:

import json
text = open("file.txt", "r").read()
obj = json.loads(text)

其中obj是一个带有嵌套数组和dicts的python本机dict对象。

编辑:

这是您想要的代码。

import json
numbers=set()
input_file=open('filename.json', 'r')
json_decode=json.load(input_file)
for item in json_decode["07/01/2015-08/01/2015"]["ABC"]:
    numbers.add(item[0])
print " ".join(str(x) for x in numbers)

你遍历每个项目(两个字符串)并添加了每个字符串的第一个字母,因此是1和2.下一次,请提供你得到的输出。

此外,您应该首先尝试调试代码。我在每个循环的开头添加了print,这使得问题非常清楚。