2017-02-20 110 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? :) –