import requests from datetime import datetime def extract_time(json): print "extract_time" try: return json['DepartureTime'] except: return -1 url = 'http://api.trafikinfo.trafikverket.se/beta/data.json' headers = {'Content-Type': 'text/xml'} xml_data = """ DepartureTime Info ToHarbor.Id ToHarbor.Name FromHarbor.Name FromHarbor.Id """ r = requests.post(url, data=xml_data, headers=headers) if r.status_code == 200: data = r.json() dataFerry = data['RESPONSE']['RESULT'][0]['FerryAnnouncement'] dataFerry.sort(key=extract_time, reverse=False) result = [] for item in dataFerry: mydict = {} timestamp = item['DepartureTime'] timestamp = datetime.strptime(timestamp, "%Y-%m-%dT%H:%M:%S") timestamp = timestamp.strftime("%H:%M:%S") mydict['time'] = timestamp if 'Info' in item: info = unicode(item['Info'][0]) info = info.decode('UTF-8') mydict['info'] = info result.append(mydict) print result else: print "error" print r.text