I am getting the weather information from a URL.
weather = urllib2.urlopen(\'url\')
wjson = weather.read()
and what I am getting is:
import json
weather = urllib2.urlopen('url')
wjson = weather.read()
wjdata = json.loads(wjson)
print wjdata['data']['current_condition'][0]['temp_C']
What you get from the url is a json string. And your can't parse it with index directly.
You should convert it to a dict by json.loads
and then you can parse it with index.
Instead of using .read()
to intermediately save it to memory and then read it to json
, allow json
to load it directly from the file:
wjdata = json.load(urllib2.urlopen('url'))
Another alternative way using get method with requests:
import requests
wjdata = requests.get('url').json()
print wjdata.get('data').get('current_condition')[0].get('temp_C')
Here's an alternative solution using requests:
import requests
wjdata = requests.get('url').json()
print wjdata['data']['current_condition'][0]['temp_C']
'temp_C' is a key inside dictionary that is inside a list that is inside a dictionary
This way works:
wjson['data']['current_condition'][0]['temp_C']
>> '10'
Just for more one option...You can do it this way too:
MYJSON = {
'username': 'gula_gut',
'pics': '/0/myfavourite.jpeg',
'id': '1'
}
#changing username
MYJSON['username'] = 'calixto'
print(MYJSON['username'])
I hope this can help.