2017-02-20 111 views
0

我有一個很大的文本文件,即pre.txt,我想要使用python在多行上閱讀feat_left點。這是文本文件的快照。遍歷多行

{ 
    "outputs": { 
    "/home/113267806.jpg": { 
     "feat_left": [ 
     2.369331121444702, 
     -1.1544183492660522 
     ], 
     "feat_right": [ 
     2.2432730197906494, 
     -0.896904468536377 
     ] 
    }, 
    "/home/115061965.jpg": { 
     "feat_left": [ 
     1.8996189832687378, 
     -1.3713303804397583 
     ], 
     "feat_right": [ 
     1.908974051475525, 
     -1.4422794580459595 
     ] 
    }, 
    "/home/119306609.jpg": { 
     "feat_left": [ 
     -0.7765399217605591, 
     -1.690917730331421 
     ], 
     "feat_right": [ 
     -1.1964678764343262, 
     -1.9359161853790283 
     ] 
    }, 
+3

您的文件是'json':你不想逐行分析它,使用'json.load()'來得到相應的蟒蛇結構。 –

+0

你想讀取塊的文件?你真正的問題是什麼? – Elodin

+0

可否請您提供一個片段閱讀feat_left @ Jean-FrançoisFabre – cpwah

回答

3

閱讀json並重復這樣的,

import json 
data = json.load(open('file_name.json')) 
for val in data['outputs'].values(): 
    print(val['feat_left']) 

結果會是這樣,

[-0.7765399217605591, -1.690917730331421] 
[2.369331121444702, -1.1544183492660522] 
[1.8996189832687378, -1.3713303804397583] 

編輯 您可以使用這樣的圖片路徑,

for key,val in a['outputs'].items(): 
     print(key,val['feat_left']) 

,它會給liek這

('/home/119306609.jpg', [-0.7765399217605591, -1.690917730331421]) 
('/home/113267806.jpg', [2.369331121444702, -1.1544183492660522]) 
('/home/115061965.jpg', [1.8996189832687378, -1.3713303804397583]) 
+2

提供加載'json'文件的代碼也將使這個體面的答案(也使其符合python 3) –

+0

我不確定重複部分? @ Jean-FrançoisFabre – cpwah

+0

??無論如何:發佈編輯。嘿,誰在我之前upvoted? :) –