通过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]))