[python] json data

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Stijnb_
  • Registratie: Oktober 2009
  • Laatst online: 28-09 00:26
Beste Tweakers,

Ik ben niet echt thuis in de programmatie wereld.
Maar kan hier en daar wel wat in elkaar prutsen.
Nu zou ik graag het weer van het internet halen voor mijn domotica systeem.

Ik gebruik openweathermap en probeer via hun api de json data op te halen en te verwerken.
Alleen loopt het daar al stroef, ik kan de data van het internet halen krijg een output alleen daar ligt het probleem. Ik weet niet hoe ik de data moet verwerken. Op internet is er veel info te vinden voor het encoden naar json maar niet over het decoden. Ook heb ik al de pyowm geprobeerd is een library maar deze haalt het weer op van 3uur geleden en niet het recente weer bericht.

code:
1
2
3
4
5
6
7
8
9
10
11
12
import urllib2
import json

response = urllib2.urlopen('http://api.openweathermap.org/data/2.5/weather?id=2783760&appid=7f0daf79320298d5004c8f811dae11e0&units=metric')
data = json.load(response)

data = json.dumps(data)

print data


print data[3]


Output:
code:
1
2
{"clouds": {"all": 80}, "name": "Wevelgem", "rain": {"3h": 0.65}, "sys": {"country": "BE", "sunset": 1475428839, "message": 0.0091, "type": 3, "id": 1456853916, "sunrise": 1475387460}, "weather": [{"main": "Rain", "id": 500, "icon": "10n", "description": "light rain"}], "coord": {"lat": 50.83, "lon": 3.17}, "base": "stations", "dt": 1475432445, "main": {"pressure": 1016.1, "temp_min": 11.11, "temp_max": 12.78, "temp": 11.88, "humidity": 88}, "id": 2783760, "wind": {"gust": 1.11, "speed": 0.28, "deg": 153}, "cod": 200}
l


Nu krijg ik het hele weerbericht terug maar als ik er data wil uit halen.
Kan ik alleen maar letters uit halen als ik data[3] doe.
Ik zou graag bv data[main] doen en dat ik dan de temperaturen terug krijg.

Iemand die mij hierbij kan helpen?

Alle reacties


Acties:
  • 0 Henk 'm!

  • Stijnb_
  • Registratie: Oktober 2009
  • Laatst online: 28-09 00:26
Heb het probleem gevonden.
code:
1
2
3
data = json.dumps(data)
data = json.loads(data)
print data['sys']['sunset']

Acties:
  • +1 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Je laadt eerst JSON uit een request converteert het daarna naar een string om het vervolgens weer terug om te zetten naar hetzelfde object waar je vóór die stringomzetting mee begon? :?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • +2 Henk 'm!

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 09-10 13:33
Mosterd na de maaltijd wellicht, maar voor (REST) API's die JSON teruggooien vind ik zelf request wel een prettig package:

http://docs.python-requests.org/en/master/
https://pypi.python.org/pypi/requests/

Handelt het decoden van JSON voor je af en geeft je gewoon een object / dict om mee te werken :)