При запуске скрипта Python я получаю вместо дефиса - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь исправить скрипт Python, каждый раз, когда есть заголовок с дефисом, он показывает - и ошибка

KeyError: 'text here \xe2\x80\x93 text here'

Сценарий захватывает взаимодействие с API, и API был настроен с дефисами как началом защищенных областей, поэтому дефисы на самом деле не являются дефисами, они являются началом защищенных областей, поэтому я поместил их в код, но при запуске скрипта он не совсем распознает их. У меня уже есть # - - кодировка: utf-8 - - вверху скрипта.

Конечно, это не весь сценарий, но здесь я бы изменил "-" на все, что нужно, чтобы эта работа работала.

- - кодировка: utf-8 - -

team_list = ["text here – text here",
             "text here – text here"] 

Вот что получается при запуске:

REQUEST @:text here – text here
STATUS: <Response [200]>>

Traceback (most recent call last):
  File "filepath here", line 102, in <module>
    request(url_list[i], team_list[i], team_data[i], team_count[i], team_name[i])
  File "filepath here", line 66, in request
    if rnamedata["data"][team]["incident"]["data"][0] == None:
KeyError: 'text here \xe2\x80\x93 text here'

Я ожидаю, что он вернется с дефисом, а не с символом - или \ xe2 \ x80 \ x93

1 Ответ

1 голос
/ 26 апреля 2019

Последовательность байтов b "\ xe2 \ x80 \ x93" представляет собой Unicode en-dash, U + 2013. Символ '-', который выглядит почти идентично символу дефиса-минус ascii '-' U + 002D, но это не так. Ан-тире шире.

Вы получаете ошибку ключа, потому что в ключе есть дефис, а ваши данные - нет.

Помещение - кодировка: UTF-8 - вверху вашей программы не влияет на то, как ваша программа читает данные. Это является указанием для интерпретатора кодировки вашего исходного кода. В любом случае UTF-8 используется по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...