Я запускаю Python 3 на macOS Sierra и вам нужно создать предложения, составленные из синонимов определенных слов. Для этого я использую PyDictionary.Проблемы с PyDictionary/BeautifulSoup
Однако при запуске моего кода (см. Ниже) я получаю сообщение об ошибке (интерпретатор 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
Почему на земле у него будет прекрасный суп в ошибке? Вы не включили что-то? – Elodin
Я сам не пользуюсь BeautifulSoup - однако, согласно Индексу пакетов Python, PyDictionary использует его. https://pypi.python.org/pypi/PyDictionary –