Я пытался проанализировать большой текстовый файл и преобразовать его в словарь для дальнейшего анализа. Вот пример текстового файла:
Mar 2 (2020, year not always present)
first paragraph
second line of first paragraph
second paragraph
second line of second paragraph
Mar 3
More lines
these two should be grouped together
because they don't have a blank line in between them
however this line is a start of a new "entry"
sometimes they only have one line, sometimes many.
В идеале это приведет к следующему словарю Python:
{"Mar 2": ["first paragraph\nsecond line of first paragraph", "second paragraph\nsecond line of second paragraph"], "Mar 3": ["More lines\nthese two should be grouped together\nbecause they\ndon't have a blank line in between them", "however this line is a start of a new \"entry\"", "sometimes they only have one line, sometimes many."]}
Я попытался использовать следующий код, и он почти работает но я не уверен, что не так.
def isdate(line):
return line.lower().split(" ")[0] in ("jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sept", "oct", "nov", "dec")
data = ...
lines = data.split("\n")
i = 0
data = {}
while i < len(lines):
if isdate(lines[i]):
date = lines[i]
data[date] = []
i += 1
while not isdate(lines[i]):
curr_d = ""
while lines[i].strip(" ") != "":
curr_d += lines[i] + "\n"
i += 1
i += 1
data[date].append(curr_d)
else:
print("error in parsing")
break
Проблема с моим кодом состоит в том, что он выводит правильные данные , однако происходит сбой при достижении конца. Извините, что не включил это ранее, я только что понял, что на самом деле он выводит правильные данные, но просто вылетает.
Я не думаю, что это дубликат, хотя очень сложно найти что-то такое уточните c все же это общее (если вы понимаете, о чем я), хотя я уверен, что некоторые ТАК волшебники меня поправят.
Заранее спасибо.