philshem
philshem

Reputation: 25331

Appending a list inside of a JSON - Python 2.7

My JSON dict looks like this:

{
    "end": 1, 
    "results": [
        {
            "expired": false, 
            "tag": "search"
        }, 
        {
            "span": "text goes here"
        }
    ], 
    "totalResults": 1
}

which is the product of this line:

tmp_response['results'].append({'span':"text goes here"})

My goal is to get the "span" key into the "results" list. This is necessary for when totalResults > 1.

{
    "end": 1, 
    "results": [
        {
            "expired": false, 
            "tag": "search",
            "span": "text goes here"
        },
    ], 
    "totalResults": 1
}

I've tried several methods, for example with use 'dictname.update', but this overwrites the existing data in 'results'.

Upvotes: 0

Views: 846

Answers (2)

Prashant Gaur
Prashant Gaur

Reputation: 9828

Here is one more solution if you want you can use below code.

>>> tmp_response = {"end": 1,"results": [{"expired": False,"tag": "search"},{"span": "text goes here"}],"totalResults": 1}
>>> tmp_response['results'][0] = dict(tmp_response['results'][0].items() + {'New_entry': "Ney Value"}.items())
>>> tmp_response
{'totalResults': 1, 'end': 1, 'results': [{'tag': 'search', 'expired': False, 'New_entry': 'Ney Value'}, {'span': 'text goes here'}]}
>>> 

Upvotes: 1

Daniel Roseman
Daniel Roseman

Reputation: 599610

tmp_response['results'][0]['span'] = "text goes here"

or, if you really wanted to use update:

tmp_response['results'][0].update({'span':"text goes here"})

but note that is an unnecessary creation of a dict.

Upvotes: 2

Related Questions