【发布时间】:2014-06-07 15:47:48
【问题描述】:
我正在使用 Weather Underground API 将历史天气数据写入 csv。我的 Python 程序没有任何问题。但是,我想添加一个条件语句,告诉我的程序只编写包括雨的天气观测。所以,如果在观测 j 时底特律正在下雨,那么写下小时、条件、雨、雪、temp_f。
下面是程序的最后一部分。 “for j in range”循环遍历给定日期的天气观测。 “rain”是二进制的。
同样,程序中的其他一切都运行良好。我对工作程序所做的唯一更改是“if rain == 0:”......现在它不会将数据写入我的 csv。没有错误消息。
非常感谢任何帮助。
保罗
for j in range(len(parsed_json['history']['observations'])):
hour = parsed_json['history']['observations'][j]['date']['hour']
conditions = parsed_json['history']['observations'][j]['conds']
rain = parsed_json['history']['observations'][j]['rain']
snow = parsed_json['history']['observations'][j]['snow']
temp_f = parsed_json['history']['observations'][j]['tempi']
if rain == 0:
myfile.write('\n')
myfile.write(str(dd[i]))
myfile.write(',')
myfile.write(str(hour))
myfile.write(',')
myfile.write(str(cities[b]))
myfile.write(',')
myfile.write(str(temp_f))
myfile.write(',')
myfile.write(str(conditions))
myfile.write(',')
myfile.write(str(rain))
myfile.write(',')
myfile.write(str(snow))
myfile.write(',')
【问题讨论】:
-
为什么不
if not rain:?你有没有检查过一些数据应该被写出吗? -
我希望“rain == 0”表示“没有下雨”。你试过“雨!= 0”吗?
-
printrain的值以确定您应该检查的内容——也许它是一个空字符串或其他什么。 -
在 if 之前尝试“print type(rain), rain”。你可能会发现 rain 是一个字符串,而不是一个 int,所以比较不起作用。
-
是的,我试过rain == “0” ...但没有解决。 rain == 0 确实意味着没有下雨,这就是我想要的。
标签: python csv if-statement for-loop