我想创建一个单独的文件,结合多个python词典,关于可以每天更新的沿海天气条件(潮汐,风等)。数据来自多个API和网站,每个我转换为python字典,并使用以下代码行合并为单个字典:
pyinstaller --onedir C:\Users\ -- Directory of Python file
我的目标是每天对网站进行抽样;并根据每天的天气和网站预测更新单个文件。我认为最好的方法是使用日期为层次结构创建一个新的顶级。所以这就像是:
OneDayWeather_data = {'Willydata' : Willydata, 'Bureau of Meteorology' : BoMdata, 'WeatherZone' : WZdata}
对于每一天,我会为新一天的数据添加一个新的顶级条目,即
Weather_data['18/07/2017']['Willy']['Winds']
Weather_data['18/07/2017']['BoMdata']['Winds']
我已经尝试过使用堆栈溢出建议的各种方法(完全披露:我对Python很新)。例如,
AllWeatherData['19/07/2017']['Willy']['Winds']
...但我一直收到错误(在这种情况下:当我尝试重新打开时,ValueError(errmsg(“额外数据”,s,end,len(s)))。希望某人有一些专业知识可以权衡如何解决这个问题。
谢谢!
答案 0 :(得分:0)
您实际上是将更新dict附加到现有的dict
# write the initial file
import json
OneDayWeather_data = {'a':'b'}
with open('test.json', 'w') as f:
json.dump(OneDayWeather_data, f)
OneDayWeather_data = {'c':'d'}
# 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)
在此阶段,您的test.json看起来像
{"a": "b"}{"a": "b", "c": "d"}
您可以分开阅读/更新/写入
with open('test.json','r') as f:
dic = dict(json.load(f))
dic.update(OneDayWeather_data)
with open('test.json', 'w') as f:
json.dump(dic, f)
中可以找到类似的答案