사전을 명령 줄에 전달하고 싶습니다. 다음 코드는 실패 지정 'json.loads'또는 '딕셔너리는'하지 않습니다 : 1사용자가 명령 줄에서 사전을 전달하도록합니다.
C:\KTLO\bin>python TestProg.py -d "{'a':'b'}"
usage: TestProg.py [-h] [-d DICT]
TestProg.py: error: argument -d/--dict: invalid dict value: "{'a':'b'}"
편집 :
import json
import argparse
parser = argparse.ArgumentParser(description='Test Arg Parse')
parser.add_argument('-d', '--dict', type=dict, required=False)
variables = vars(parser.parse_args())
print json.dumps(variables)
내가 프로그램을 실행하고있어, 다음과 같은 오류가 발생합니다 출력을 변경하고 여전히 오류를 던집니다.
''json.loads'를'type'으로 만들 필요가 있습니다.'default'와'dict'는 사전의 문자열 표현으로 받아들이지 않습니다. – jonrsharpe
@ 시바 수락 된 답변에서 해킹이 표시되고 실제로 작동하지 않습니다. – psychoCoder
''json.loads'를'type'으로 전달하는 것은 해킹이 아니며 작동합니다. – jonrsharpe