我想从推文的json objcet中提取文本字段,然后通过syntaxnet运行它。我正在用Python做这一切。
我的代码是:
import os, sys
import subprocess
import json
def parse(text):
os.chdir("/var/www/html/alenza/hdfs/user/alenza/sree_account/sree_project/src/core/data_analysis/syntaxnet/models/syntaxnet")
#synnet_output = subprocess.check_output()
subprocess.call(["echo 'hello world' | syntaxet/demo.sh"], shell = True)
#print synnet_output
for line in sys.stdin:
line1 = json.loads(line)
text = line1['avl_lexicon_text']
print text
synnet_output = parse(text)
现在,我想在echo 'hello world'
函数中回复parse
而不是text
。我希望将text
变量提供给syntaxnet/demo.sh
文件。我尝试了subprocess.call(["echo text | syntaxet/demo.sh"], shell = True)
但是没有用。我怎么能这样做?
答案 0 :(得分:0)
您可以使用字符串格式化程序%s
并替换文本
def parse(text):
os.chdir("/var/www/html/alenza/hdfs/user/alenza/sree_account/sree_project/src/core/data_analysis/syntaxnet/models/syntaxnet")
#synnet_output = subprocess.check_output()
subprocess.call(["echo '%s' | syntaxet/demo.sh"%text], shell = True)
#print synnet_output
如果您怀疑自己的文字可能只有单引号,那么您可以将其删除:
text = text.replace("'", "\\'")