[英]No Viable Alternative to Input '\\n" Python Error
我正在開展一個大型項目,該項目涉及為 python 腳本命名並返回它屬於哪種性別的結果。 我當前的程序是用 Java 編寫的,並使用 Jython 與稱為“性機器”的 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 交互的程度。 如果有人看到錯誤或不正確的事情,如果您能幫助我,我當然會感激不盡。 由於這是一個大型項目,需要時間再次運行整個程序才能遇到相同的問題,因此我真的需要解決這個問題。
我不知道它是否有幫助,但這就是我所做的,它對我有用。
public static void main(String[] args){
PythonInterpreter pI = new PythonInterpreter();
pI.exec("x = 3");
PyObject result = pI.get("x");
System.out.println(result);
}
不確定你是否解決了這個問題,但有一個額外的撇號
d.get_gender('Christinewazonek'')
就像在 Java 中一樣,您打開的所有內容都需要關閉,在這種情況下,您打開了一個包含)\n")
的字符串,該字符串未關閉。
根據您使用的解釋器,這可以很容易地標記。 也許你可以嘗試不同的解釋器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.