Reputation: 67
I have a Json object and Im trying to add a new element every time I enter a new number. The Json looks like this:
[
{
"range": [1,2,3,4,5]
}
]
This is my code:
import json
number = raw_input("enter a number: ")
json_file = 'json.json'
json_data = open(json_file)
data = json.load(json_data)
data.append({"range": number})
print data
If my new number is 10 for example, I want my new json document to have: [1, 2, 3, 4, 5, 10
]. The output I'm getting with my code is:
[{u'range': [1, 2, 3, 4, 5]}, {'range': '25'}]
I'm using python 2.6
Upvotes: 1
Views: 24446
Reputation: 23203
Your json object consists of:
To append to this list you have to:
data[0]
data[0]['range']
data[0]['range'].append(new_value)
Upvotes: 1
Reputation: 44828
You need something like this
data[0]['range'].append(10)
Or use int(your_number)
instead of 10
Upvotes: 1
Reputation: 107287
First of all for opening a file you can use with
statement which will close the file the the end of the block, the you can load your json file and after that you can will have a list contains a dictionary which you can access to dictionary with index 0 and access to the list value with data[0]['range']
and finally you can append your number list :
import json
number = raw_input("enter a number: ")
json_file = 'json.json'
with open(json_file) as json_data:
data = json.load(json_data)
data[0]['range'].append(int(number))
print data
Upvotes: 0