LINUX.ORG.RU

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

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

Если где-то в subpages содержится «victim name», то надо в тот же subpages после «victim name» добавить еще одну секцию, с тем же набором параметров, но другими значениями.

Как-то так:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import json

def add_some_shit_for_victim(dct):
    if 'subpages' in dct:
        subpages = dct['subpages']
        victim = None
        for idx, subpage in enumerate(subpages):
            if subpage['name'] == 'Victim name':
                victim = idx
                break
        if victim is not None:
            # С тем же набором параметров, но с другими значениями
            new_page = {
                'name': 'foo',
                'img': 'foo.img',
                'id': '42'
            }
            subpages.insert(victim + 1, new_page)
    return dct

def main():
    with open('categories.json', 'r') as json_data:
        data = json.load(json_data, object_hook=add_some_shit_for_victim)
        print json.dumps(data, ensure_ascii=False, indent=2)

if __name__ == '__main__':
    main()

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

Если где-то в subpages содержится «victim name», то надо в тот же subpages после «victim name» добавить еще одну секцию, с тем же набором параметров, но другими значениями.

Как-то так:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import json

def add_some_shit_for_victim(dct):
    if 'subpages' in dct:
        subpages = dct['subpages']
        victim = None
        for idx, subpage in enumerate(subpages):
            if subpage['name'] == 'Victim name':
                victim = idx
                print victim
                break
        if victim is not None:
            # С тем же набором параметров, но с другими значениями
            new_page = {
                'name': 'foo',
                'img': 'foo.img',
                'id': '42'
            }
            subpages.insert(victim + 1, new_page)
    return dct

def main():
    with open('categories.json', 'r') as json_data:
        data = json.load(json_data, object_hook=add_some_shit_for_victim)

        print json.dumps(data, ensure_ascii=False, indent=2)

if __name__ == '__main__':
    main()