Home  >  Q&A  >  body text

python regular increment

The following has been collected using re.sub. You need to add "1": "2": "3" in front of each {}. How to write this:

'{"nClass":-1,"nIcon":16},{"nClass":-1,"nIcon":15},{"nClass":-1,"nIcon":14}'

final effect:

'“1”:{"nClass":-1,"nIcon":16},“2”:{"nClass":-1,"nIcon":15},“3”:{"nClass":-1,"nIcon":14}'
phpcn_u1582phpcn_u15822682 days ago547

reply all(2)I'll reply

  • 淡淡烟草味

    淡淡烟草味2017-05-18 11:00:27

    Your description is not clear enough. You said the result should be a list. Do you want to convert it to a dict?

    import json
    
    str = '{"nClass":-1,"nIcon":16},{"nClass":-1,"nIcon":15},{"nClass":-1,"nIcon":14}'
    lst = json.loads('[{}]'.format(str))
    
    l  = ['"{}":{}'.format(i+1, json.dumps(v)) for i,v in enumerate(lst)]
    print ','.join(l)

    reply
    0
  • 黄舟

    黄舟2017-05-18 11:00:27

    import re
    data = '{"nClass":-1,"nIcon":16},{"nClass":-1,"nIcon":15},   {"nClass":-1,"nIcon":14}'
    # 提取为数组
    data = re.findall('((?=,\s?)?\{.*?\})+', data)
    # 下标从1开始, 所以i+1
    print ','.join(['"%d":%s' % (i+1, v) for i, v in enumerate(data)])
    # "1":{"nClass":-1,"nIcon":16},"2":{"nClass":-1,"nIcon":15},"3":{"nClass":-1,"nIcon":14}

    reply
    0
  • Cancelreply