PyDictionary / BeautifulSoup的问题

时间:2017-02-20 09:21:13

标签: python macos beautifulsoup macos-sierra

我在macOS Sierra上运行Python 3,需要创建由特定单词的同义词组成的句子。为此,我使用的是PyDictionary。

但是,在运行我的代码时(如下所示),我收到错误(Python解释器)和警告(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

1 个答案:

答案 0 :(得分:0)

我找到了完全相同的问题,但问题在https://github.com/VitaliyRodnenko/geeknote/issues/305

解决了

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