Ich möchte eine einzelne Datei erstellen, die mehrere Python-Wörterbücher zu Küstenwetterbedingungen (Gezeiten, Wind usw.) kombiniert, die von Tag zu Tag aktualisiert werden können. Die Daten stammen aus mehreren APIs und Websites, von denen jede ich ein Python-Wörterbuch konvertieren und verschmelzen zu einem einzigen Wörterbuch, um die folgende Codezeile verwenden:Mehrere Python-Wörterbücher in dynamische Datei zusammenführen
OneDayWeather_data = {'Willydata' : Willydata, 'Bureau of Meteorology' : BoMdata, 'WeatherZone' : WZdata}
Mein Ziel ist es, die Seiten jeden Tag zu probieren; und aktualisieren Sie eine einzelne Datei mit dem Wetter und der Wettervorhersage für jeden Tag auf den Websites. Ich denke, der beste Weg, dies zu tun, ist eine neue Top-Ebene für die Hierarchie mit dem Datum zu erstellen. So würde es wie so etwas sein:
Weather_data['18/07/2017']['Willy']['Winds']
Weather_data['18/07/2017']['BoMdata']['Winds']
Für jeden Tag, würde ich dann einen neuen Top-Level-Eintrag hinzufügen, für die Daten des neuen Tages, dh
AllWeatherData['19/07/2017']['Willy']['Winds']
habe ich versucht, dies mit einer Vielzahl von Methoden vorgeschlagen von Stack-Überlauf (Vollständige Offenlegung: Ich bin ziemlich neu in Python). Zum Beispiel
# write the initial file
with open('test.json', 'w') as f:
json.dump(OneDayWeather_data, f)
# open the initial file and attempt to append
with open('test.json','r+') as f:
dic = dict(json.load(f))
dic.update(OneDayWeather_data)
json.dump(dic, f)
# reopen the appended file
with open('test.json', 'r') as f2:
json_object = json.load(f2)
... aber ich halte Fehler bekommen (in diesem Fall: Valueerror (errmsg ("Extra-Daten", s, Ende, len (s))), wenn ich versuche, wieder zu öffnen). In der Hoffnung, dass jemand etwas Fachwissen beibringen kann, wie er dieses Problem angehen kann.
Danke!
Wie wäre es mit TinyDB? http://tinydb.readthedocs.io/en/latest/ – Grimmy