通过SSH将dict作为参数传递给Python脚本
我试图通过通过SSH将dict作为参数传递给Python脚本,python,ssh,parameter-passing,Python,Ssh,Parameter Passing,我试图通过os模块使用ssh命令传递dict参数: os.system(f'ssh remote_host python -u - {dict1} {dict2} < local_script.py') os.system(f'ssh remote_host python-u-{dict1}{dict2}
os
模块使用ssh
命令传递dict参数:
os.system(f'ssh remote_host python -u - {dict1} {dict2} < local_script.py')
os.system(f'ssh remote_host python-u-{dict1}{dict2}
我得到一个错误:
sh:line:0意外标记('s)附近的语法错误
将dict作为参数传递的正确语法是什么
如果我传递字符串而不是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')
也许你应该把dict转换成json字符串。谢谢。是的,我试过这样,在dict“datatime”中对象可用且无法在JSON中序列化。对于datetime问题,请使用
strftime
将datetime
对象转换为字符串,谢谢!正如建议的那样,我使用strftime,后来我使用strftime获取datetime对象相关问题:
import json
import urllib.parse
dict1 = json.loads(urllib.parse.unquote(sys.argv[1]))
dict2 = json.loads(urllib.parse.unquote(sys.argv[2]))