2017-03-06 14 views
0

이 주제와 관련하여 몇 가지 질문이 있지만 내 관심사는 다른 것입니다. 사전 입력을 명령 줄에서 가져 와서 할 수 있습니다.Python - 명령 행 인수로 사전 (해시 입력) 사용하기

python sentence_scorev1.3.py "working today" "0.6" '[{"ques": "hello who are you", "ans": "I am rishabh", "type": 1},{"ques": "your name", "ans": "I am Ram", "type": 2},{"ques": "Are you working today", "ans": "Yes I am", "type": 4'}]' 

I는 입력을 취하여 JSON으로 변환하고 입력 데이터가 입력 된 해시이다

json_data = json.loads(input_data) 

사용하여 분석 하였다. 내가 두 번째 QUES 키 입력에 '같은 해시 입력에 구두점 당신을보고'와 동일한 입력을 통과 할 때 나의 관심사입니다

'[{"ques": "hello who are you", "ans": "I am rishabh", "type": 1},{"ques": "your' name", "ans": "I am Ram", "type": 2} 

파이썬 입력의 끝으로 이해해야하기 때문에 그것은 오류가 발생합니다 하지만 여전히 입력 데이터 문자열이 있습니다. 이것을 우회하는 법을 알려주십시오.

+0

http://jsonlint.com/ –

+0

@PaulCollingwood, 그하지의 명령 줄에서 입력을 복용에 대한 문장 ID가 실제 입력 끝 이전 감지 할 때 ', JSON의 유효성을 검사에 대한 –

+0

요점은 사용자가 잘 형성된 JSON 문자열을 입력 할 것으로 기대하지 않는 것입니다. 이스케이프 문자를 사용하는 경우 명령 줄에 이러한 문자열을 입력 할 수 있습니다. http://stackoverflow.com/questions/15637429/how-to-escape-double-quotes-in-json –

답변

1

당신이 유닉스 쉘 또는 이와 유사한에서 파이썬을 시작하는 경우 ...

구두점은 첫 번째의 왼쪽에있는 '문자로 시작하는 세 번째 명령 행 인수의 끝으로 해석됩니다

대괄호. 은, 그 일에서 쉘을 정지 탈출하려면 '과 같은 백 슬래시 :

'[{"ques": "hello who are you", "ans": "I am rishabh", "type": 1},{"ques": "your\' name", "ans": "I am Ram", "type": 2}]' 

(내가 마지막에 균형을 괄호를 추가했습니다.)

구문 분석이 발생

파이썬도 명령을 취득하기 전에 라인 인수.

편집 : 원래 명령 줄에 작은 따옴표가 추가로 포함되어 있습니다. 나는 다음과 같이해야한다고 생각 :

'[{"ques": "hello who are you", "ans": "I am rishabh", "type": 1},{"ques": "your name", "ans": "I am Ram", "type": 2},{"ques": "Are you working today", "ans": "Yes I am", "type": 4}]' 
+0

우분투 터미널을 사용하여 실행하고 만약 내가 그것을 도피로 전달하면 명령 행 실행을 입력합니다 : > > 스크립트가 –

+0

을 실행하지 않을 수 있습니다. 문장 점수 Python 스크립트를 포함하도록 질문을 편집 할 수 있습니까? – sjjhsjjh

+0

지금 나는 방법을 발견했다. 명령을 입력하는 대신 '대신'을 넣을 것입니다. 그리고 스크립트에서 나는 # by를 대체했습니다. 당분간은 사용할 수 있지만 올바른 접근법은 아닙니다. 여기에 진정한 트릭을 찾고 있습니다. –