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)