通过 SSH 将 dict 作为参数传递给 Python 脚本

2024-01-08

我正在尝试使用传递 dict 参数ssh命令通过os module:

os.system(f'ssh remote_host python -u - {dict1} {dict2} < local_script.py')

我收到错误:

sh:line:0 意外标记附近出现语法错误 ('

将 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')

您可以使用 url 编码和 json 解析在 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]))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 SSH 将 dict 作为参数传递给 Python 脚本 的相关文章

随机推荐