Дополнить список словарей - PullRequest
0 голосов
/ 05 июля 2018

Я пишу программу на Python с возможностью перезапуска. Я хотел сохранить состояние выполнения программы в формате JSON, чтобы при перезапуске он мог запросить Json и перезапустить с точки сбоя.

JSON будет выглядеть примерно так:

{
    "job_name": xxxxx,
    "job_start_time": xxxxx,
    "site": xxxxxx,
    "tasks": [
        {
            "id": <unique id to look-up on restart>
            "task_start_time": 
            "task_end_time":
            "runtime":
            "successful": <true or false>
            "error_message":<if successful is false>
        }
    ]   
}

Когда этап успешно завершается, он добавляет задание в список задач.

Мой вопрос заключается в том, как добавить словарь задач, в то время как весь объект python остается.

Возможно ли это в JSON?

Ответы [ 3 ]

0 голосов
/ 05 июля 2018

Мой вопрос - как добавить словарь задач, в то время как весь объект python остается.

Вы можете использовать метод словарей update для изменения объекта. Вот пример:

d = {'inventory': [{'Color': 'Brown', 'Model': 'Camry', 'Year': 2018},
               {'Model': 'Corolla', 'Year': 2017}],
     'name': 'Toyota'}

d['inventory'][0].update({'Doors': 4})
print(d)
{'inventory': [{'Color': 'Brown', 'Doors': 4, 'Model': 'Camry', 'Year': 2018},
               {'Model': 'Corolla', 'Year': 2017}],
 'name': 'Toyota'}
0 голосов
/ 07 июля 2018

Это словарь? Если так ...

dictionary["tasks"].append(whatever)
0 голосов
/ 05 июля 2018

Вы можете передать параметры во входном json следующему заданию, которое будет выходом текущего задания. Например: -

{
    "job_name": xxxxx_2,
    "job_start_time": xxxxx,
    "site": xxxxxx,
    "tasks": [
        {
            "id": <unique id to look-up on restart>
            "task_start_time": 
            "task_end_time":
            "runtime":
            "successful": <true or false>
            "error_message":<if successful is false>,
            "parameters":{
             "--Dict":{dict_values}
}
        }
    ]   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...