我运行bash脚本
my_file.sh
在python文件中,如下所示:
import subprocess
def rest_api():
params = {
'query': 'indepedence day',
'formats': '["NEWSPAPER"]',
}
subprocess.call(['bash',
'my_file.sh',
f'QUERY={params.get("query")}',
f'DOC_TYPE={params.get("formats")}',
f'LANGUAGE={params.get("lang")}', # returns None!
])
if __name__ == '__main__':
rest_api()
我在中的几个输入参数
subprocess.call
通常不存在于词典中
params={}
(此处我提供
f'LANGUAGE={params.get("lang")}'
作为一个示例)。我在中处理这种不可用性
my_file.sh
用某些东西初始化,例如:
if [ -z "$LANGUAGE" ]; then LANGUAGE="${LANGUAGE:-[]}"; fi
我想要的是应用某种
if else
中的声明
subprocess.call
功能与此逻辑:
如果
params.get("lang")
是
None
,甚至不要将其作为bash文件的输入发送,例如,将其视为我从未为其提供过此类输入
my_file.sh
.
因此,我试着这样重写我的代码:
subprocess.call(['bash',
'my_file.sh',
f'QUERY={params.get("query")}',
f'DOC_TYPE={params.get("formats")}',
if params.get("lang"): f'LANGUAGE={params.get("lang")}', # syntax Error
])
哪个错了我得到以下
invalid syntax error
:
Traceback (most recent call last):
File "nationalbiblioteket_logs.py", line 13, in <module>
from url_scraping import *
File "/home/xenial/WS_Farid/DARIAH-FI/url_scraping.py", line 17, in <module>
from utils import *
File "/home/xenial/WS_Farid/DARIAH-FI/utils.py", line 53
if params.get("lang"): f'LANGUAGE={params.get("lang")}',
^
SyntaxError: invalid syntax
我对申请有错误的理解吗
如果其他
语句,或者有更简单或更干净的方法吗?
干杯