2015-11-04 235 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

非常感謝。有效。 –