1 раз из 10 получаем ошибку json.decoder.JSONDecodeError: Expecting ','

у меня есть этот уродливый noob func:

def run_prog(compile_container, user_input, container_file_path):
    # bash doesnt support single quotes or quotes inside double quotes so @# = '
    time_check_command = '/usr/bin/time -f "@# , @#memory@#:@#%M@# , @#time@#:@#%e@#"'
    result = compile_container.exec_run(
        f"/bin/bash -c 'echo {user_input} | {time_check_command} ./a.out'",
        workdir=container_file_path)[1].decode('utf-8')
    result = '{"result":"' + result + ',}'
    result = result.replace('@#', '"')
    result_dict = json.loads(result)
    if result_dict['time'] == '0.00':
        result_dict['time'] = '<0.01'
    return result_dict

Большую часть времени он перезапускает json следующим образом:

{
    "result": "888",
    "memory": "1792",
    "time": "<0.01"
}

Но однажды при вводе 10 или 20 mb выдает ошибку, и я не знаю почему. Ввод всегда один и тот же. Подскажите, пожалуйста, что не так?

Итак, я не совсем понимаю, в чем дело, но переход с json.loads на ast.literal_eval помог.

result_dict = ast.literal_eval(result)
Вернуться на верх