Извлечение значений из текста и преобразование в JSON с использованием python - PullRequest
0 голосов
/ 06 января 2020

У меня есть текст в файле, как показано ниже. Мне нужно извлечь значения из текста в формате json.

Input.txt

   - - - - - —---
   Name: Game
   Students: 10
   Sql : case @
         when students.db end
   LIST: write

   Total:Game1
   - - - - - —---
   Name: Game1
   Students: 10
   Sql : case @
         when students1.db end
   LIST: write
   Attribute: PL Game1
   - - - - - - - - - - - 
   Name: Game11
   Students: 10
   Sql : case @
         when students11.db end
   LIST: write
 - - - - - - - - - 

Используя python мне нужно получить вывод как Выход

{"NAME" :"Game" } 
{"SQL" :"case @ when students1.db end" } 

1 Ответ

0 голосов
/ 06 января 2020

Исходя из данных, которые вы указали в своем вопросе, по способу сделать это можно так:

with open("data.txt", "r") as inFile:
    finalOutput = []
    content = inFile.read().replace('-','').replace('—','').replace('@\n', '@').strip().split('\n\n')
    content = [" ".join(item.split()) for elem in content for item in elem.split('\n')]
    content = [elem for elem in content if elem != '']
    finalOutput = [{elem.split(":")[0].strip() : elem.split(":")[1].strip()} for elem in content]
    for elem in finalOutput:
        print(elem)

Это даст следующий результат:

{'Name': 'Game'}
{'Students': '10'}
{'Sql': 'case @ when students.db end'}
{'LIST': 'write'}
{'Total': 'Game1'}
{'Name': 'Game1'}
{'Students': '10'}
{'Sql': 'case @ when students1.db end'}
{'LIST': 'write'}
{'Attribute': 'PL Game1'}
{'Name': 'Game11'}
{'Students': '10'}
{'Sql': 'case @ when students11.db end'}
{'LIST': 'write'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...