我正在开展一个大型项目,该项目涉及给一个python脚本一个名字,并获得一个关于它属于哪种性别的结果。我当前的程序是用Java编写的,并使用Jython与名为“sex machine”的Python脚本进行交互。它在大多数情况下都很好用,我用较小的用户组进行了测试。但是,当我尝试使用大量用户对其进行测试时,程序大约进入中途,然后给出了以下错误:
"Exception in thread "main" SyntaxError: No viable alternative to input '\\n'", ('<string>', 1, 22, "result = d.get_gender('Christinewazonek'')\n")
我更习惯于Java并且对Python的知识有限,所以目前我不知道如何解决这个问题。我试图修剪我给出get_gender方法的字符串,但这没有任何帮助。我不确定数字1,22甚至是什么意思。
就像我说的那样,因为我正在使用Jython,我的代码如下:
static PythonInterpreter interp = new PythonInterpreter();
interp.exec("import sys, os.path");
interp.exec("sys.path.append('/Users/myname/Desktop/')");
interp.exec("import sexmachine.detector as gender");
interp.exec("d = gender.Detector()");
interp.exec("result = d.get_gender('"+WordUtils.capitalize(name).trim()
+"')");
PyObject gendAnswer = interp.get("result");
这几乎是我的Java代码中Jython / Python交互的程度。如果有人看到错误或不正确的话,如果你能帮助我,我当然会感激。由于这是一个大型项目,因此需要时间来重新运行整个程序才能遇到同样的问题,因此我真的需要解决这个问题。
答案 0 :(得分:-1)
不确定是否已对此进行了整理,但在
上加了撇号d.get_gender('Christinewazonek'')
就像在Java中一样,打开的所有内容都需要关闭,在这种情况下,您打开了一个包含)\n")
且未关闭的字符串。
根据您使用的解释器,可以很容易地将其标记出来。也许您可以尝试使用其他解释器。