簡體   English   中英

沒有可行的替代輸入 '\\n" Python 錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM