LINUX.ORG.RU

История изменений

Исправление Marvel, (текущая версия) :

Два варианта на выбор: f(n) и g()

import json
import re

def f(n):
    'n - число строк с конца'
    with open('test.txt', 'r') as f: 
        return json.loads(' '.join(f.readlines()[:-n]))
    
def g():
    with open('test.txt', 'r') as f:
        return json.loads('[' + re.sub('}\s*{', '},{', f.read()) + ']')[-1]
    
print(f(8))
print(g())

Здесь не учитывается, что внутри json-строк могут быть фигурные скобки или символы начала строки, но, мне кажется, тебе это не важно. Если важно, напиши, я исправлю.

PS: Для корректной работы я заменил кавычки «» на " в файле. Не совсем понятно - это особенность разметки ЛОРа или твоего файла.

Исправление Marvel, :

Два варианта на выбор: f(n) и g()

import json
import re

def f(n):
    'n - число строк с конца'
    with open('test.txt', 'r') as f: 
        return json.loads(' '.join(f.readlines()[:-n]))
    
def g():
    with open('test.txt', 'r') as f:
        return json.loads('[' + re.sub('}\s*{', '},{', f.read()) + ']')[-1]
    
print(f(8))
print(g())

Здесь не учитывается, что внутри json-строк могут быть фигурные скобки или символы начала строки, но, мне кажется, тебе это не важно. Если важно, напиши, я исправлю.

Исправление Marvel, :

Два варианта на выбор: f(n) и g()

import json
import re

def f(n):
    'n - число строк с конца'
    with open('test.txt', 'r') as f: 
        return json.loads(' '.join(f.readlines()[:-n]))
    
def g():
    with open('test.txt', 'r') as f:
        return json.loads('[' + re.sub('}\s*{', '},{', f.read()) + ']')[-1]
    
print(f(8))
print(g())

Здесь не учитывается, что внутри json-строк могут быть фигурные скобки или символы начала строки, но, мне кажется, тебе это не важно.

Исходная версия Marvel, :

Два варианта на выбор: f(n) и g()

import json
import re

def f(n):
    'n - число строк с конца'
    with open('test.txt', 'r') as f: 
        return json.loads(' '.join(f.readlines()[:-n]))
    
def g():
    with open('test.txt', 'r') as f:
        return json.loads('[' + re.sub('}\s*{', '},{', f.read()) + ']')[-1]
    
print(f(8))
print(g())