Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用IF语句写入文件_Python_Csv_If Statement_For Loop - Fatal编程技术网

Python 使用IF语句写入文件

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。没有错误消息 非常感谢您的帮助

我正在使用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(...)
        ...