2013-11-22 15 views
0

我是非常新的python,我試圖用它來解析JSON文件在我的bash_profile腳本中,並返回值。我似乎無法得到if語句的工作。它會讀取文件的內容,但我收到了這個錯誤,在if語句下面有一個箭頭。Python如果語句錯誤,在bash_profile函數

File "<string>", line 1 
    import sys,json;data=json.loads(sys.stdin.read());if data['123456789']:print... 
                ^
SyntaxError: invalid syntax 

文件的內容:

{"123456789":"Well Hello"} 

功能,搜索文件:

function find_it { 
    file=~/.pt_branches 
    CURRENT_CONTENTS=`cat $file` 
    echo $CURRENT_CONTENTS | python -c "import sys,json;data=json.loads(sys.stdin.read());if data['$1']:print data['$1'];else:print '';" 
} 

命令

find_it "123456789" 

如果我刪除if語句,只是返回價值,它確實有用,但我很喜歡如果它不存在,就可以返回並清空字符串。

echo $CURRENT_CONTENTS | python -c "import sys,json;data=json.loads(sys.stdin.read());print data['$1'];" 

關於我在做什麼的錯誤的任何想法?!?

回答

1

代碼高爾夫!

"import sys, json; data=json.loads(sys.stdin.read()); print data.get('$1') or ''" 
+0

就是這樣!謝謝! –

1

這樣做:

echo $CURRENT_CONTENTS | python -c "                                
import sys 
import json 
data = json.loads(sys.stdin.read()) 
if data['$1']: 
    print data['$1'] 
else: 
    print ''"