KeyError: Python 'L194'
Вот скриншот файла, с которым я работаю. Содержит "L194".
Вот полная строка, просто чтобы показать, что после разбиения в ней всего 5 элементов, как и в других предложениях.
L194 +++ $ +++ u0 +++ $ +++ m0 +++ $ +++ BIANCA +++ $ +++ Можем ли мы сделать это быстро? У Роксаны Коррин и Эндрю Барретта произошел невероятно ужасный разрыв с публикой. Снова.
movie_lines = open('movie_lines.txt', mode = 'r', encoding = 'utf-8', errors = 'ignore').read().split('\n')
movie_convo_lines = open('movie_conversations.txt', mode ='r', encoding = 'utf-8', errors='ignore').read().split('\n')
map_line_id_with_text = {}
for line in movie_lines:
extract = line.split('+++$+++')
if len(extract)== 5:
map_line_id_with_text[extract[0]] = extract[4]
list_of_lineids = []
for line in movie_convo_lines[:-1]:
extract = line.split(' +++$+++ ')[-1][1:-1].replace("'","").replace(" ","")
list_of_lineids.append(extract.split(','))
prompts = []
responses = []
for _ in list_of_lineids:
for i in range(len(_)-1):
prompts.append(map_line_id_with_text[_[i]])
responses.append(map_line_id_with_text[_[i+1]])
limit = 0
for i in range (limit, limit+5):
print(prompts[i])
print(responses[i])
Когда я запускаю этот код, я получаю сообщение об ошибке выше, но файл, который я открыл, содержит "L194", поэтому я не понимаю, почему он не работает. Ошибка отображается в команде prompts.append.
1 ответ
Разделитель строк вашего фильма должен быть ' +++$+++ '
(с пробелами), который вы правильно использовали в своем втором for
петля, но в вашем первом for
цикл вы использовали '+++$+++'
(без пробелов) вместо этого в качестве разделителя, поэтому номера строк, извлеченные там, будут иметь завершающий пробел, в результате чего правильные номера строк из list_of_lineids
не найти в map_line_id_with_text
,