我是python的新手,我正在尝试使用它在我的bash_profile脚本中解析包含JSON的文件,并返回值。我似乎无法得到if语句。它会读取文件的内容,但是我收到了这个错误,if语句下面有一个箭头。
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'];"
关于我做错了什么想法?!?
答案 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 ''"
答案 1 :(得分:1)
代码高尔夫!
"import sys, json; data=json.loads(sys.stdin.read()); print data.get('$1') or ''"