Python 使用IF语句写入文件
我正在使用Weather Underground API将历史天气数据写入csv。我的Python程序没有任何问题。然而,我想添加一个条件语句,告诉我的程序只写包含雨水的天气观测。所以,如果底特律在观测j上下雨,那么写下时间、条件、雨、雪、温度 下面是该计划的最后一部分。“适用于范围内的j”循环浏览给定日期的天气观测结果。“雨”是二进制的 同样,程序中的所有其他内容都非常有效。我对工作程序所做的唯一更改是“if rain==0:”…现在它不会将数据写入我的csv。没有错误消息 非常感谢您的帮助 保罗 像这样使用索引(Python 使用IF语句写入文件,python,csv,if-statement,for-loop,Python,Csv,If Statement,For Loop,我正在使用Weather Underground API将历史天气数据写入csv。我的Python程序没有任何问题。然而,我想添加一个条件语句,告诉我的程序只写包含雨水的天气观测。所以,如果底特律在观测j上下雨,那么写下时间、条件、雨、雪、温度 下面是该计划的最后一部分。“适用于范围内的j”循环浏览给定日期的天气观测结果。“雨”是二进制的 同样,程序中的所有其他内容都非常有效。我对工作程序所做的唯一更改是“if rain==0:”…现在它不会将数据写入我的csv。没有错误消息 非常感谢您的帮助
j
)是很奇怪的,如果您不想将数据写出来,为什么要解析数据?为什么不:
for obs in parsed_json['history']['observations']:
if obs['rain']: # or 'if not', depending on which you want
hours = obs['date']['hour']
...
myfile.write(...)
...
如果看不到数据样本,就很难知道是否应该在
myfile
中结束任何内容,这不是像使用===vs==那样的语法问题,是吗?尝试使用“snow”或其他变量和/或使用调试语句来显示rain的值。这假设CSV文件的输出语句有效。我上次看Python已经有一段时间了。您可以强制rain为0,然后检查记录是否添加到CSV,以确保输出正常。然后返回以确定何时/为什么雨不是0。希望这是有用的,并激发其他想法。如果不是下雨,为什么不:
?你检查过一些数据应该被写出来吗?我认为“rain==0”意味着“没有雨”。你试过“rain!=0”吗?print
rain的值来确定你应该检查什么——可能是空字符串或什么。在if之前尝试“print type(rain),rain”。你可能会发现rain是一个字符串,而不是int,所以比较不起作用。。。这并没有解决问题。雨==0并不意味着没有雨,这就是我想要的。
for obs in parsed_json['history']['observations']:
if obs['rain']: # or 'if not', depending on which you want
hours = obs['date']['hour']
...
myfile.write(...)
...