2015-11-04 230 views
-3

我的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) 

但这不打印的数字。

+0

[从Python中的JSON文件解析值]可能的重复(http://stackoverflow.com/questions/2835559/parsing-values-from-a-json-file-in-python) –

+0

SO不是一个代码写作服务。请阅读相关主题,进行尝试,并在遇到麻烦时提供MVE。 –

+0

另一方面,*是*问答网站。我观察到这个帖子没有问题。 S.Pandit,你有具体的问题要问吗? –

回答

0

Python有一个json解析库,详情参见https://docs.python.org/2/library/json.html

用法:

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

其中obj是具有嵌套阵列和类型的字典python原有的字典对象。

编辑:

这是您想要的代码。

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,这使问题变得非常清楚。

+0

对不起,我忘了添加代码。我现在添加了它。 –

+0

非常感谢。有效。 –