关于这个问题,在同一主题上发布了一些问题,但我关注的是其他问题。 我试图从命令行获取字典输入并且能够做到。
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'}]'
我已经接受了输入并将其转换为JSON并使用
进行解析json_data = json.loads(input_data)
其中输入数据是哈希输入。我担心的是当我在哈希输入中使用' 标点符号传递相同的输入时,例如请参阅'在第二个问题键输入
'[{"ques": "hello who are you", "ans": "I am rishabh", "type": 1},{"ques": "your' name", "ans": "I am Ram", "type": 2}
它抛出错误,因为python必须将其理解为输入结束但仍然有输入数据字符串。请让我知道如何绕过这个。
答案 0 :(得分:1)
如果你从Unix shell或类似的东西启动Python ......
标点符号将被解释为第三个命令行参数的结尾,该参数以'开头。第一个方括号左侧的字符。 为了阻止shell做到这一点,逃避'用这样的反斜杠:
'[{"ques": "hello who are you", "ans": "I am rishabh", "type": 1},{"ques": "your\' name", "ans": "I am Ram", "type": 2}]'
(我试图在最后添加平衡括号。)
解析发生在Python甚至获取命令行参数之前。
编辑: 原始命令行包含额外的单引号。我认为它应该是这样的:
'[{"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}]'