Hallo,
Ich hab für meine ersten Gehversuche in Python hab ich ein kleines Skript (nach dieser Anleitung) geschrieben, welches Wetterdaten von Wunderground ausliest und in einer Datei speichert.
Python
#!/usr/bin/python
#coding=UTF-8
import requests
# inits
fcast = []
#Webseite auslesen(json)
r = requests.get("http://api.wunderground.com/api/wunderground-API/forecast/astronomy/lang:DL/q/xx,xx.json")
data=r.json()
r.close()
#Werte auslesen
i=0
for day in data['forecast']['simpleforecast']['forecastday']:
a= "Tag"+str(i)+","
x = str(day['date']['weekday_short'])+","
y= day['conditions']+",""
z = str(day['high']['celsius']) + "," + str(day['low']['celsius']) + ","
w = str(day['pop']) + ","
k = str(day['maxwind']['kph']) + ","
c = str(day['qpf_allday']['mm']) + ","
d = str(day['snow_allday']['cm'])
fcast.append(a+x+y)
i=i+1
#Ausgabe sortieren
b=str(data['forecast']['txt_forecast']['date'])
a="Tag,weekday_short,conditions,temp-high,temp-low,pop,maxwind,qpf_allday,snow_allday,AbfrageZeit"
csv=(a+"\n"+fcast[0]+","+b+"\n"+fcast[1]+"\n"+fcast[2])
#Werte in Datei schreiben
fobj_out = open("/tmp/wetter_f.txt","w")
fobj_out.write(csv)
fobj_out.close
Alles anzeigen
Das Scrpit hat auch einige Tage funktioniert, jedoch bekomme ich seid kurzem fogende Fehlermeldung:
Code
osmc@RPI2:~$ sudo /usr/local/bin/Wetter_f.py
Traceback (most recent call last):
File "/usr/local/bin/Wetter_f.py", line 33, in <module>
fobj_out.write(csv)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf6' in position 153: ordinal not in range(128)
was wohl an dem Umlaut "ö" bei der Quelle liegt (ausgelesen wird es im Scrpit mit " y= day['conditions']").
ist es denn möglich Umlaute bei Python zu verarbeiten?
Oder (was noch besser wäre), ist es möglich Umlaute automatisch umzuwandeln (z.B. ö zu oe)?
Edit: ok, habs mit "y= (day['conditions']).encode("utf-8")" hinbekomme (dachte das hätte ich schon ausprobiert....). Somit bleibt nur noch die Frage ob man Umlaute automatisch umwandeln kann?
Gruß,
H.