通过 SSH 将字典作为参数传递给 Python 脚本
Pass dict as an argument over SSH to Python script
我正在尝试通过 os
模块使用 ssh
命令传递字典参数:
os.system(f'ssh remote_host python -u - {dict1} {dict2} < local_script.py')
我收到一个错误:
sh:line:0 syntax error near unexpected token ('
将 dict 作为参数传递的正确语法是什么?
如果我传递字符串而不是字典,它工作正常。
有什么建议吗?
使用 json 和 urlencode。
import urllib.parse
import json
dict1_j = urllib.parse.quote(json.dumps(dict1))
dict2_j = urllib.parse.quote(json.dumps(dict2))
os.system(f'ssh remote_host python -u - {dict1_j} {dict2_j} < local_script.py')
您可以使用 urldecode 和 json pharse 在 local_script.py
中解码
import json
import urllib.parse
dict1 = json.loads(urllib.parse.unquote(sys.argv[1]))
dict2 = json.loads(urllib.parse.unquote(sys.argv[2]))
我正在尝试通过 os
模块使用 ssh
命令传递字典参数:
os.system(f'ssh remote_host python -u - {dict1} {dict2} < local_script.py')
我收到一个错误:
sh:line:0 syntax error near unexpected token ('
将 dict 作为参数传递的正确语法是什么?
如果我传递字符串而不是字典,它工作正常。
有什么建议吗?
使用 json 和 urlencode。
import urllib.parse
import json
dict1_j = urllib.parse.quote(json.dumps(dict1))
dict2_j = urllib.parse.quote(json.dumps(dict2))
os.system(f'ssh remote_host python -u - {dict1_j} {dict2_j} < local_script.py')
您可以使用 urldecode 和 json pharse 在 local_script.py
中解码import json
import urllib.parse
dict1 = json.loads(urllib.parse.unquote(sys.argv[1]))
dict2 = json.loads(urllib.parse.unquote(sys.argv[2]))