简体   繁体   中英

How to append a python dictionary to json file using python

I have a section named submissions and in the section users with multiple commands each with the command and the description like this:

{
    "submissions" : {
        "user1" : {
            "cmd1" : {
                "cmd" : "help",
                "des" : "Command to get help"
            }
        },
        "user2" : {
            "cmd1" : {
                "cmd" : "hello",
                "des" : "Greeting"
            }
        }
    }
}

Is there a way to append a new command to a user or a new user to the submissions like you can do with lists using Python?

For example you have this list:

{
    "list" : [
        {
            "name" : "Tom",
            "age" : 34
        }
    ]
}

and you can add new people to this list with:

...

person = {"name":"Kate","age":42}

data.append(person)

and kate appears on the list with the age.
But how can I define the new user so I can add this into the JSON file?

"user3" : {
            "cmd1" : {
                "cmd" : "New command",
                "des" : "New description"
            }
        }

When I try to add something like {"name":"Kate","age":34} (to show the error) to submissions with the .append() , it throws this error:

data["submissions"].append(user)
AttributeError: 'dict' object has no attribute 'append'

Can you add a new user to the JSON file with this formatting, or is it better to store the user data like the list above?

If you have:

user3 = {
            "cmd1" : {
                "cmd" : "New command",
                "des" : "New description"
            }
        }

then you just need to put this dict under the key "user3" :

data["submissions"]["user3"] = user3

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM