背景:我正在使用一个Python项目,在这个项目中,我能够在网上找到来自NOAA气象站的值通过API返回并使用Print函数显示,我已经成功地将这些值打印给Python编辑器,但我的最终目标是将这些值填充到MySQL数据库中。这是我的第一次Python体验,我发现最好直接进入一个项目,而不是花几个小时看视频和阅读。
下面是我将要引用的代码:
from noaa_sdk import noaa
from datetime import date
tdate_ = date.today()
n = noaa.NOAA()
observations = n.get_observations('27858','US',start='2020-01-04',end='2020-01-04')
for observation in observations:
print(observation)当前,有一个仅允许输入字符串的日期参数。您将看到,我有datetime和tdate_来输入相对日期,但是在将其插入到下面的字符串值时遇到了问题:
observations = n.get_observations('27858','US',start='2020-01-04',end='2020-01-04')理想情况下,这将在所有情况下引用今天的日期,这就是使用tdate_的目的。
我在网上发现了很多类似的情况,但我觉得总有一些不符合这种情况的警告。我真的很感激你的帮助,并期待着学习更多的Python!
发布于 2020-01-06 00:04:03
你的问题不清楚。我想您是在问:如何使用tdate字符串表达式而不是常量表达式'2020-01-04'?
首先,尾下划线很奇怪,请不要这样做。我们可能分配给一个标识符,如dir_、map_或list_,因为我们不希望隐藏(隐藏;掩码;重写)内置标识符。或者在这里,我们可以分配给date_,以避免隐藏import编辑的datetime.date模块。好吧,说得够多了,我们要做的是:
tdate = date.today()现在,你的问题似乎是由这样一个事实引起的:
... n.get_observations(..., start=tdate, ...)因为start参数应该是一个str,所以是一个字符串。当然可以。这很容易通过函数调用进行补救:
... n.get_observations(..., start=str(tdate), ...)同样,您可以在幕后执行__str__函数所做的工作:
... n.get_observations(..., start=tdate.strftime('%Y-%m-%d'), ...)无论是哪种情况,你都会得到一个不错的ISO8601约会。对end参数也执行相同的操作。
https://stackoverflow.com/questions/59602105
复制相似问题