'Add key value with index as value in every dict in a list

I have a json file with list of dicts. I want to modify its content by adding key:value in every dict with index as the value

Note that the json file is malform, so I need to remove the extra '[]'

file.json

  [
    {
       "sample1": 1,
       "sample2": "value"
     }
     []
     {
       "sampleb": "123",
       "some": "some"
     }
     ...............
  ]

code

    """ open the files"""
    with open("list1.json", "r") as f:
        data = f.read()
        data = data.replace("][", ",")
        data = json.loads(data)
        for v in data:
            for i, c in v.items():
                c["rank"] = i + 1
    """ put back to file"""      
    with open("list1.json", "w") as file:
        file.write(data)

So what I am trying to achieve is something like

  [
    {
      "rank": 1
      "sample1": 1,
      "sample2": "value"
    },
    {
      "rank": 2,
      "sampleb": "123",
      "some": "some"
    }
    ...............
   ]

But I got error

      c["rank"] = i
      TypeError: 'str' object does not support item assignment

printing the index print 1 shows

    0,
    1,
    .....
    0,
    1,
     ........
    0,
    1

But it should be

    0,
    1,
    2,
    3,
    4
    5
    ...
    100

Any ideas?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source