SSH를 통해 Python 스크립트에 dict를 인수로 전달
Sep 12 2020
모듈을 ssh통해 명령을 사용하여 dict 인수를 전달하려고 os합니다.
os.system(f'ssh remote_host python -u - {dict1} {dict2} < local_script.py')
오류가 발생합니다.
sh : line : 0 예기치 않은 토큰 근처의 구문 오류 ( '
dict를 인수로 전달하는 올바른 구문은 무엇입니까?
dict 대신 문자열을 전달하면 제대로 작동합니다.
어떤 제안?
답변
2 KavinduPasanKavithilaka Sep 13 2020 at 02:50
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]))