2017-02-20 27 views
0

Я запускаю 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 
+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

No. Извините. Это было единственное, что я мог найти. – Elodin

 Смежные вопросы

  • Нет связанных вопросов^_^