在第三方API函数中传递两个列表

2024-04-19 04:20:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经被困在这个问题上很多天了。你知道吗

 a = pd.date_range(start= '02/02/2017', end='06/02/2018', freq = 'D')
 c = a.format(formatter=lambda x: x.strftime('%Y-%m-%d'))

    for date_to in c:
        date_to= date_to
        print("date_to has been picked up")
        b = pd.date_range(start= '02/01/2017', end='06/2/2018', freq = 'D')
        d = b.format(formatter=lambda x: x.strftime('%Y-%m-%d'))
        for date_from in d:
            date_from= date_from
            print('date_from has been picked up')
            df = ek.get_news_headlines('R:AAPL.O AND Language:LEN', date_from = date_from , date_to = date_to, count=100)

以上是我为从第三方API中提取新闻而编写的代码(在代码的最后一行中),我面临的问题是,在最后一行中,我必须给出date\ u from和date\ u to,以提供提取数据的日期范围。现在我想让日期范围每次都自动改变,就像我们在循环中做的那样。最后一个循环“date\u from”正在工作,但第一个循环没有提供“date\u to”。提前感谢您的合作


Tags: tolambdainfromformatfordateformatter
1条回答
网友
1楼 · 发布于 2024-04-19 04:20:39

您的问题有点不清楚,但我认为这就是您想要实现的目标—同时获取日期对并移动到下一对(n个迭代),而不是两个嵌套for循环(n2iterations):

#Create date lists first
a = pd.date_range(start= '02/02/2017', end='06/02/2018', freq = 'D')
b = pd.date_range(start= '02/01/2017', end='06/2/2018', freq = 'D')
c = a.format(formatter=lambda x: x.strftime('%Y-%m-%d'))
d = b.format(formatter=lambda x: x.strftime('%Y-%m-%d'))

# Single for loop iterating over pairs of elements of c,d
for date_to,date_from in zip(c,d): 
    print("date_to has been picked up")
    print('date_from has been picked up')
    df = ek.get_news_headlines('R:AAPL.O AND Language:LEN', date_from = date_from , date_to = date_to, count=100)

您可能想了解zip()的工作原理:

https://docs.python.org/3.4/library/functions.html#zip

相关问题 更多 >