'I want to change value in json array object based on index number using pyspark

I want to change value in json array object based on index number using pyspark, then will use columnName to update dataframe column names:

input:

jsonArray = [
    {
        "index": 1,
        "columnName":"Names"
    },
        {
        "index": 2,
        "columnName":"City"
    }
    ]

output:

jsonArray = [
    {
        "index": 1,
        "columnName":"titles"
    },
        {
        "index": 2,
        "columnName":"countries"
    }
    ]

function header:

def renameColumn(index, newName, df):
    return df_with_new_column_names


Solution 1:[1]

def jsonColumnName(jsonArray, indx, newName):
   for jsonObj in jsonArray:
       if jsonObj['index'] == indx:
           jsonObj['Field_Name'] = newName
   return jsonArray

Solution 2:[2]

If I understood your requirement correctly, try something as below-

for i in range(len(jsonArray)):
  if jsonArray[i]['index']==1:
    jsonArray[i]['columnName'] = "titles"
  else:
    jsonArray[i]['columnName'] = "countries"
  
print(jsonArray)

Output -

[{'index': 1, 'columnName': 'titles'}, {'index': 2, 'columnName': 'countries'}]

Sources

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

Source: Stack Overflow

Solution Source
Solution 1 Ahmed Mouawad
Solution 2