ValueError: слишком много значений для распаковки (ожидается 3) - WebServer - PullRequest
0 голосов
/ 16 ноября 2018

Здравствуйте, я пытаюсь запустить этот учебник , но в Python 3, поэтому у меня есть ValueError (слишком много значений для распаковки (ожидается 3)) в этой строке, которая отмечена синим цветом на рисунке иликак вы можете видеть ниже:

 def parse_request(self, text):
    request_line = text.splitlines()[0]
    request_line = request_line.rstrip('\r\n')
    # Break down the request line into components
    (self.request_method,  # GET
     self.path,            # /hello
     self.request_version  # HTTP/1.1
     ) = request_line.split()

enter image description here

Я не знаю, что я делаю неправильно.Может кто-нибудь, пожалуйста, помогите мне?Код в командной строке в порядке, но когда я открываю localhost:8888/hello в Google Chrome, он возвращает мне эту ошибку в подсказке Anaconda.Я использую Sublime Text, чтобы запустить его.Я пытался сделать это с помощью Jupyter, но там это дало мне еще одну ошибку.Я не знаю что делатьСпасибо за ваш ответ.

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018

У меня была проблема с типом ответа, потому что в уроке они использовали Python 2.7, а в Python 3+ возникла путаница относительно типа переменной (байт и строка).

0 голосов
/ 16 ноября 2018
(self.request_method,  # GET
 self.path,            # /hello
 self.request_version  # HTTP/1.1
 ) = request_line.split()

Этот код ожидает, что request_line.split() вернет ровно три части, но он возвращает больше, чем это.

В качестве очень простого шага отладки вы можете напечатать request_line, чтобы увидеть, что это то, что выожидается.

...