2017-02-20 47 views
0

我在macOS Sierra上运行Python 3,需要创建由特定单词的同义词组成的句子。为此,我使用PyDictionary。然而,当运行我的代码(下面给出)时,我得到一个错误(Python解释器)和一个警告(BeautifulSoup)。PyDictionary/BeautifulSoup问题

输出:

/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/beautifulsoup4-4.5.3-py3.5.egg/bs4/__init__.py:181: UserWarning: No parser was e 
xplicitly specified, so I'm using the best available HTML parser for this system ("html.parser"). This usually isn't a problem, but if you run this code on an 
other system, or in a different virtual environment, it may use a different parser and behave differently. 

The code that caused this warning is on line 53 of the file main.py. To get rid of this warning, change code that looks like this: 

BeautifulSoup([your markup]) 

to this: 

BeautifulSoup([your markup], "html.parser") 

    markup_type=markup_type)) 
Traceback (most recent call last): 
    File "main.py", line 53, in <module> 
    edison() 
    File "main.py", line 29, in edison 
    say(respond(["I", "am", "happy", "to", "hear", "that", "html.parser"]) + "!") 
    File "/path/to/code/respond.py", line 9, in respond 
    output = (output + " " + (random.choice(dictionary.synonym(word, "html.parser")))) 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/random.py", line 265, in choice 
    return seq[i] 
KeyError: 0 

main.py:

from respond import * 


def edison(): 
    mood = input("Hi, " + username + "! How are you today? ") 
    if mood.lower() in definitions.positive: 
     print(respond(["I", "am", "happy", "to", "hear", "that", "html.parser"]) + "!") #This is line 29 
    elif mood.lower() in definitions.negative: 
     print(respond(["I", "am", "sorry", "to", "hear", "that", "html.parser"]) + "!") 



edison() #This is line 53 

respond.py:

import random 
from PyDictionary import PyDictionary 
dictionary = PyDictionary() 

def respond(wordList): 
    output = "" 
    for word in wordList: 
     output = (output + " " + (random.choice(dictionary.synonym(word, "html.parser")))) 
    return output 
+0

为什么地球上会有错误的美丽汤?你没有包括什么吗? – Elodin

+0

我没有使用BeautifulSoup自己 - 但是根据Python包索引PyDictionary使用它。 https://pypi.python.org/pypi/PyDictionary –

回答

0

我发现你的准确同样的问题,但它解决了在https://github.com/VitaliyRodnenko/geeknote/issues/305

也许尝试去那,我相信你会找到你的答案。我不能直接帮助你,因为我没有做PyDictionary,但我希望你找到你的答案。 我希望它有帮助。

+0

回过头来看,我没有直接在我的代码中引用BeautifulSoup,并且我不想更改PyDictionary的源代码。你提到的另一个答案是? –

+0

没有抱歉。这是我能找到的唯一的东西。 – Elodin