Python: обновить родителя в цикле for

Если вы хотите найти совпадения в файле whole (а не только в хвосте), и вы хотите, чтобы он сидел и ждал новых совпадений, это прекрасно работает:

tail -c +0 -f <file> | grep --line-buffered <pattern>

Флаг -c +0 указывает, что выход должен начинаться с 0 байт (-c) с начала (+) файла.

1
задан justintime 3 March 2019 в 15:51
поделиться

1 ответ

Попробуйте следующий код:

result_gantt = [{"id":1,"prj_id":808348,"parent":1},{"id":2,"prj_id":808352,"parent":2},{"id":3,"prj_id":808356,"parent":3},{"id":4,"prj_id":808361,"parent":4},{"id":5,"prj_id":808365,"parent":0},{"id":6,"prj_id":808370,"parent":0},{"id":7,"prj_id":808370,"parent":6},{"id":8,"prj_id":808370,"parent":7},{"id":9,"prj_id":808370,"parent":8}]

index = 0
prev_index = 0 # To maintain the index in case of consecutive id's
last_prj_id = ""
check = False # Check for consecutive id's
for row in result_gantt:
    current_prj_id = row['prj_id']
    parent = row['parent']
    parent = index

    if current_prj_id == last_prj_id:
        if not check: # Will be true in case of consecutive id's
            prev_index = last_id
        parent = last_id
        check = True
    else:
        check = False
        parent = index

    last_prj_id = row['prj_id']
    last_id = row['id']
    row['parent'] = parent if not check else prev_index

for i in result_gantt:
    print i

Вывод:

{'prj_id': 808348, 'id': 1, 'parent': 0}
{'prj_id': 808352, 'id': 2, 'parent': 0}
{'prj_id': 808356, 'id': 3, 'parent': 0}
{'prj_id': 808361, 'id': 4, 'parent': 0}
{'prj_id': 808365, 'id': 5, 'parent': 0}
{'prj_id': 808370, 'id': 6, 'parent': 0}
{'prj_id': 808370, 'id': 7, 'parent': 6}
{'prj_id': 808370, 'id': 8, 'parent': 6}
{'prj_id': 808370, 'id': 9, 'parent': 6}
0
ответ дан skaul05 3 March 2019 в 15:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: