Ниже приведены фактические строки из моего файла. В нем около 22 тыс. Таких строк.
Я хочу прочитать каждую строку из файла и преобразовать ее в действительный json, чтобы получить из него каждый атрибут.
***** Строки из файла *****
Gi: ACAT1#<>#Ti: Best Director#<>#Bp: 0#<>#Vt: award#<>#Xt: prize_normalized#<>#Cp: 0
Gi: ACAT10#<>#Ti: Best Screenplay#<>#Bp: 0#<>#Vt: award#<>#Xt: prize_normalized#<>#Cp: 0
Gi: ACAT11#<>#Ti: Best Score#<>#Bp: 0#<>#Vt: award#<>#Xt: prize_normalized#<>#Cp: 0
Из текстового файла ('test.txt'
), содержащего эти файлы, я хочу прочитать каждую строку и получить значения атрибутов вроде "Ti" , "Gi", "Vt" ...
Я считаю, что эти атрибуты можно легко получить, если я смогу преобразовать каждую строку в json
.
Как и сейчас, я заключил каждую строку с цветочными скобками '{}'
.
А затем заменил разделитель '#<>#'
на " , "
Теперь каждая строка выглядит примерно так:
******** После заключения в фигурные скобки и замены на ","
*********
{Gi: ACAT1,Ti: Best Director,Bp: 0,Vt: award,Xt: prize_normalized,Cp: 0}
{Gi: ACAT10,Ti: Best Screenplay,Bp: 0,Vt: award,Xt: prize_normalized,Cp: 0}
{Gi: ACAT11,Ti: Best Score,Bp: 0,Vt: award,Xt: prize_normalized,Cp: 0}
Но все же эта строка не является допустимым json, поскольку объекты не являются String.
Итак, когда я выполняю итерациюкаждая строка и попытка загрузить содержимое json
, выдает ошибку, поскольку очевидно, что это не Valid json
без правильной строки.
****** Ниже приведен код ******
import json
with open("test.txt") as f:
for line in f:
a=json.loads(line)
b=a.get('Vt')
print(b)
Это приведет к ошибке
Так что не могли бы вы помочь мне в преобразовании каждогострока из текста в Valid json
, чтобы я мог легко разобрать его?
******* Ожидаемый формат каждой строки ***********
{"Gi": "ACAT1","Ti": "Best Director","Bp": 0,"Vt": "award","Xt": "prize_normalized","Cp": 0}
{"Gi": "ACAT10","Ti": "Best Screenplay","Bp": 0,"Vt": "award","Xt": "prize_normalized","Cp": 0}
{"Gi": "ACAT11","Ti": "Best Score","Bp": 0,"Vt": "award","Xt": "prize_normalized","Cp": 0}
Если вы считаете, что преобразование каждой строки в json
не лучший вариант, пожалуйста, предложите то, что вы считаете лучшим.
Ваш ответ высоко ценится. С уважением,