Stryker
Stryker

Reputation: 6120

How to modify nested JSON with python

I need to update (CRUD) a nested JSON file using Python. To be able to call python function(s)(to update/delete/create) entires and write it back to the json file.

Here is a sample file.

I am looking at the remap library but not sure if this will work.

    {
  "groups": [
    {
      "name": "group1",
      "properties": [
        {
          "name": "Test-Key-String",
          "value": {
            "type": "String",
            "encoding": "utf-8",
            "data": "value1"
          }
        },
        {
          "name": "Test-Key-Integer",
          "value": {
            "type": "Integer",
            "data": 1000
          }
        }
      ],
      "groups": [
        {
          "name": "group-child",
          "properties": [
            {
              "name": "Test-Key-String",
              "value": {
                "type": "String",
                "encoding": "utf-8",
                "data": "value1"
              }
            },
            {
              "name": "Test-Key-Integer",
              "value": {
                "type": "Integer",
                "data": 1000
              }
            }
          ]
        }
      ]
    },
    {
      "name": "group2",
      "properties": [
        {
          "name": "Test-Key2-String",
          "value": {
            "type": "String",
            "encoding": "utf-8",
            "data": "value2"
          }
        }
      ]
    }
  ]
}

Upvotes: 0

Views: 3708

Answers (1)

Fhaab
Fhaab

Reputation: 370

I feel like I'm missing something in your question. In any event, what I understand is that you want to read a json file, edit the data as a python object, then write it back out with the updated data?

Read the json file:

import json

with open("data.json") as f:
  data = json.load(f)

That creates a dictionary (given the format you've given) that you can manipulate however you want. Assuming you want to write it out:

with open("data.json","w") as f:
  json.dump(data,f)

Upvotes: 1

Related Questions